gurlchecker-0.13.1/0000755000175000017500000000000011530645400011071 500000000000000gurlchecker-0.13.1/ui/0000755000175000017500000000000011530645401011507 500000000000000gurlchecker-0.13.1/ui/menu_protocol_ftp.png0000644000175000017500000000107010744343152015675 00000000000000PNG  IHDRabKGD pHYs  tIME 2-IDATxڥjQ5Ja6i)|E0`/`$(j+(hg 1)Bd{s,ff.o33s?O_FksOÿ)_lWsnsf0Un޺ZUR ;{~ܝC"{T'bq Du4%`i x:`e:k"[HBVb7߳KL!99g3@3M#-03$ I`Eܧ%aM %׀\4IYc%J~o=`A.RݛK^A1"\%rRJȄͦބ(o]p ,C'cg[qo8@3v|~pmIC7A=GDEh4ksv(@\z7@jAIENDB`gurlchecker-0.13.1/ui/link_status_ignored.png0000644000175000017500000000111710744343152016210 00000000000000PNG  IHDR b bKGD pHYs  tIME7IDATx͒kq?Wy/M*PBTAIA: .N/8I(XRC%{I%ws;|xxxljD,mѨר7v=G>]GMgמ=߸s|Gae\xeTڮi^H:Y]@ h&/SRWR2枡$A*3kf6Im!8iAt*Y:dN/uFbiz+3=%\NbqB)qs5nsec͑@˶ʥRߝʄrDQ7-Tя ٵxbޠOlBRyN`|T+xIz{K9zq\,ѼntXBxzn™뺐Q %"8@ @o^Ay h@@khd?*`{IENDB`gurlchecker-0.13.1/ui/link_status_good.png0000644000175000017500000000111410744343152015506 00000000000000PNG  IHDR b bKGD pHYs  tIME:ٞBIDATx͒kq?KLz^c66V$@ŭ:8Qpps7uR"(ERIj.wIrG3|<'cJ酓dY `__T_h  E.]sw}8.Oa[OUᾩU` #AȄCu]lˢy=2_V1> nʲi=vxr*NfZ%3斦o)QƔ˓[/[uj B.. k.;xCnl=,pEiR,e` p0 B`ictjK|P߳UDo$Rz,3DZ@sOQ4| k,@`] ݤݶu#qWa'A;z6ɩHR(ĕ"~+G$},¥@Q¿B|Z4>o IENDB`gurlchecker-0.13.1/ui/link_type_image_local.png0000644000175000017500000000135210744343152016454 00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb` D8KTTt7NE \dee8w/^ gAV@Ȉ S~;r߿GAAAj5 77wK/\7 ._ex- ߓ'O˿;;w#>x1335=| wnb[Q%o2x+2|!22: X|СC^22 ;`('Ó8Y&1<~[ @3|?P @־Ie=}.8 '÷o? o}0Ǐ @ gݵsռe[ ,98V!@ѣGSn߽ojG 238Xu22f X;g{O;~cb,1rMWYX !J @Ȝk?{ށ10> ~LX ;  tj޽_O8/@ 7..RRRߡći v_@@P<_0  jIENDB`gurlchecker-0.13.1/ui/link_status_file_error.png0000644000175000017500000000112210744343152016705 00000000000000PNG  IHDR b bKGD pHYs  tIME)IDATx;o`9KJhBRi%R+!F$LHFR 2Jb%؎]_pN|a*bW Rq( TUNr~:/TUoס|{ݡy, aB$xgnN}#nJN%}cF#l6uj~u~s[Y U=Q|apae<σd0\c{$HRUy?C݃G~^vQ,8:XEg:0`޲o_U MiZ* 8pia;u',ٯ,<җ`&! Ib+a0t](2 g Z4M$A$( rnF*% ø!4(24?ݲesIENDB`gurlchecker-0.13.1/ui/link_type_href.png0000644000175000017500000000221410744343152015142 00000000000000PNG  IHDR bKGD pHYs  tIME5,qih IDATxڭkG3Ϗ}~l55VӐ( ZRQ[{Bn|\E+ʘȕF&mW s޺ykq2sro! iX{81\G3}o@ asqsg"e7h"Lp~;X*n%݅xR#O -uH{2LCA q+X_#_c^el| \kzz:| Xi$Q@)Qf$ @`]b,5#Ly8;r׎s8goH& y#ރx2*jucvQ*-//Y~i= aLbG)N 8Vj;QZʱ1ہiX0 jss^y 5YYN)6uBE Cϣ#bq\5ġ7<8q@t BO@~efXG#/7o)Inr< ]`"eu=d2!Ԥe!Al4^ 500 5 New web project False True center-always gurlchecker.png dialog True vertical 5 True vertical 5 True Enter a URL to check fill True False False 0 True web_project 20 True True True False False 1 Do not retrieve page content (speed up the check) True True False True Check this option to scan only one page True True False False 2 True True 3 5 True True False False 0 True vertical True 5 2 2 5 5 True True False 1 2 1 2 True True 1 2 True 0 Password : 1 2 GTK_FILL True 0 Login : GTK_FILL False False 0 1 True Authentication label_item 3 True True 3 True 5 True True False False 0 True vertical 5 Ignore URLs arguments True True False True Check this option to avoid possible infinite scan (when some arguments are randomly generated, for example) True True True False False 0 True True False True Check this option if you want to limit check to the given directory and its subdirectories on the given Web site True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check this directory and its subdirectories True True True False False 1 False False 1 True True False True Uncheck this option to check external links too True True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check local links True True True False False 1 False False 2 1 True Advanced options label_item 4 False False 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False False end 0 gURLChecker Preferences True center-always gurlchecker.png dialog True vertical True True 2 True True 5 left True 5 vertical 5 True 2 2 True True 0 0 3600 1 10 10 1 True 1 2 1 2 GTK_FILL True True After that time, unsuccessful connection intent will be aborted 30 1 3600 1 10 10 1 True 1 2 GTK_FILL True 0 Time to wait between two checks, in second: 1 2 GTK_FILL True After that time, unsuccessful connection intent will be aborted 0 Timeout in seconds: GTK_FILL False False 0 True Network False tab True 5 vertical Prompt for authentication True True False Check this option to be prompted for Basic Authentication when a page request it True True False False 0 1 True Authentication 1 False tab True 5 vertical DEBUG mode True True False True True False False 0 Dump link properties while checking True True False True True False False 1 2 True Debug 2 False tab True 5 vertical Labels export True True False Check this option to export links labels True True False False 0 Numbering True True False Check this option for links numbering True True False False 1 Only external links True True False True Check this option for links numbering True True False False 2 IP address True True False True Check this option for links numbering True True False False 3 3 True Export 3 False tab True 5 vertical 5 True 2 True True 1000 1 1000 1 10 10 1 True 1 2 GTK_FILL True 0 Max depth of levels to check: GTK_FILL False 0 Ignore URLs arguments True True False True Check this option to avoid some nasty infinite loops (when some arguments are randomly generated, for example) True True True False False 1 True True False True Check this option if you want to limit check to the given directory and its subdirectories on the given Web site True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check this directory and its subdirectories True True True False False 1 False False 2 True True False True Uncheck this option to check external links too True True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check local links True True True False False 1 False False 3 4 True Check 4 False tab True General False tab True True 5 left True 5 vertical 5 True 0 True 5 vertical 5 True True False word 5 5 False Document extensions to ignore, separated by comma. Ex.: asp,aspx,exe,pif 0 True True gtk-no 1 True <b>Documents to ignore</b> True label_item False 0 True vertical 6 True 0 <b>Content management</b> True False False 0 True True False False 0 True vertical Retrieve content of non HTML files True True False Check this option to retreive content of documents other than HTML pages and images: PDF, tarballs... True True True False False 0 1 1 False 1 True Documents False tab True 5 vertical 5 True 0 True 5 vertical 5 True True False word 5 5 False Image extensions to ignore, separated by comma. Ex.: gif,png 0 True True gtk-no 1 True <b>Images to ignore</b> True label_item False 0 True vertical 6 True 0 <b>Content management</b> True False False 0 True True False False 0 True vertical Retrieve images content True True False Check this option to retreive images content for local preview True True True False False 0 1 1 False 1 1 True Images 1 False tab True 5 5 True True automatic automatic 0 True 5 5 start gtk-add True True True False True False False 0 gtk-remove True True True False True False False 1 gtk-clear True True True False True False False 2 False 5 1 2 True Directories 2 False tab True 5 vertical 5 True True True automatic automatic 0 True 5 5 start gtk-add True True True False True False False 0 gtk-remove True True True False True False False 1 gtk-clear True True True False True False False 2 False 5 1 0 True 5 True Check this option to ignore servers that do not respond after more than n tries Block a host in timeout after False False 0 True True 3 2 100 1 10 10 1 True if-valid False 1 True attemps False False 2 False 1 3 True Domains 3 False tab True 5 vertical 6 True vertical 6 True 0 <b>HTTP</b> True False False 0 True True False False 0 True vertical Check True False True False True True True False False 0 With SSL (HTTPS) True False False Check this option to check secure URLs too True True True False False 1 1 1 False 0 True vertical 6 True 0 <b>FILE</b> True False False 0 True True False False 0 True vertical Check True True False True True True False False 0 Consider as error True True False True True sd_radio_file_protocol False False 1 1 1 False 1 True vertical 6 True 0 <b>MAILTO</b> True False False 0 True True False False 0 True vertical E-Mails syntax True False False Check this option to check for e-mails syntax True True True False False 0 Check MX True True False Check this option to check MX of e-mails domains True True False False 1 1 1 False 2 True vertical 6 True 0 <b>FTP</b> True False False 0 True True False False 0 True vertical Check True False False Check this option to check FTP links True True True False False 0 Use passive mode True False True False True True True False False 1 1 1 False False 3 4 True Protocols 4 False tab 1 True Filters 1 False tab True True 5 left True 5 vertical 5 True True False False 0 True vertical 5 start True True True False True 0 0 True 2 True gtk-clear False False 0 True Clear project history True False False 1 False False 0 True True True False True 0 0 True 2 True gtk-clear False False 0 True Clear search history True False False 1 False False 1 True True True True True 0 0 True 2 True gtk-clear False False 0 True Clear export history True False False 1 False False 2 False end 1 False 0 True History False tab True 5 vertical Accept all cookies True True False True True False False 0 True 0 True 12 True 5 vertical When a cookie is added True True False True True False False 0 When a cookie is updated True True False True True False False 1 When a cookie is deleted True True False True True False False 2 True <b>Warnings</b> True label_item False False 1 Do not accept any cookies True True False True True sd_radio_cookies_accept False False 2 1 True Cookies 1 False tab 2 True Personal data 2 False tab True vertical True vertical Activate security checks True True False Check this option to enable security checks 5 none True True True False False 0 True True 5 left True 5 vertical 5 Activate True True False Check this option to enable detection of uncommon files extensions True True False False 0 True 5 True 0 0 gtk-dialog-warning 1 False 0 True This option will only be active for <i>Web site</i> projects. True True False False 1 False 1 True 0 Exclude images True True False True True True <b>Options</b> True label_item False 2 True 5 0 True 5 vertical 5 True True False word 5 5 False Bad extensions to search for, separated by comma. Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data 0 True True gtk-yes 1 True <b>Extensions to search for</b> True label_item False 3 True Files False tab True 5 vertical 5 True Activate True True False Check this option to enable virus scan of pages content True True False False 0 True True False gURLChecker use the libclamav library to scan files for viruses http://www.clamav.net (Libclamav) False False 1 False False 0 True 5 True 0 0 gtk-dialog-warning 1 False 0 True Those choices will override [Filters/Documents]. True True False False 1 False 1 True 5 0 True 5 vertical 5 True True False word 5 5 False First part of the mime-type of files to check for virus, separated by comma. Ex.: application,audio,image,text,video,x-world 0 True True gtk-yes 1 True <b>Files to check</b> True label_item False 2 1 True Viruses 1 False tab 1 0 3 True Security 3 False tab True vertical Activate W3C validation True True False Check this option to enable W3C validation 5 True True True False False 0 True True 5 left True 5 vertical 5 True Activate True True False Check this option to enable HTML validation True True False False 0 True True False gURLChecker use the libtidy library to validate HTML pages http://tidy.sourceforge.net/ (Libtidy) False False 1 False False 0 True 0 True 5 5 True True False word 5 5 False Consider that the code is not W3C compliant if it contains: 0 True vertical Warnings True True False True True False False 0 Errors True True False True True sd_radio_w3c_html_warnings False False 1 1 True <b>Options</b> True label_item False False 1 True 0 True 5 vertical 5 True True False word 5 5 False HTML extensions to check, separated by comma. Ex.: php,html,htm,pl 0 True True gtk-yes 1 True <b>HTML extensions to check</b> True label_item False 2 True HTML False tab True 5 vertical 5 True Activate True True False Check this option to enable CSS validation True True False False 0 True True False gURLChecker use the libcroco library to validate CSS2 stylesheets http://www.freespiders.org/projects/libcroco/ (Libcroco) False False 1 False False 0 True 0 True 5 vertical 5 True True False word 5 5 False CSS extensions to check, separated by comma. Ex.: css 0 True True gtk-yes 1 True <b>CSS Extensions to check</b> True label_item False 1 1 True CSS 1 False tab 1 4 True W3C 4 False tab False 2 True end gtk-cancel -6 True True True False True False False 0 gtk-apply -10 True True True False True False False 1 gtk-ok -5 True True True False True False False 2 False 5 end 0 Check in progress... False True center-always gurlchecker.png dialog True vertical 5 True vertical 5 True 5 Check in progress... center middle False False 0 True center middle False False 1 True True center end False False 2 True True 5 True True True False False 0 True vertical Activate security checks True True False 5 True True False False 0 True 5 2 3 5 5 True True 0 0 100 1 10 10 1 True 1 2 1 2 GTK_FILL True 0 second(s), between checks. 2 3 1 2 GTK_FILL True 0 Wait 1 2 GTK_FILL True True 30 1 3600 1 10 10 1 True 1 2 GTK_FILL True 0 second(s). 2 3 GTK_FILL True 0 Timeout: GTK_FILL 1 1 True Dynamic values label_item 5 3 2 True spread True True True False True 0 0 True 2 True gtk-go-forward False False 0 True Ignore this item True False False 1 False False 0 True True True False True 0 0 True 2 True gtk-cancel False False 0 True Cancel True False False 1 False False 1 Suspend True True True False True False False 2 False end 0 Page properties True False True gtk-properties View all link locations True False True gtk-index True View bad extensions True False True gtk-no W3C validation True False True gtk-apply True Check MX True False True gnome-stock-mail gtk-delete True True True True Parent update True Update page containing this link False True gtk-refresh Branch update True Update all children for this link False True gtk-refresh Link update True Update this link False True gtk-refresh True View online True False True link_type_href.png View parent page online True False True link_type_href.png View source True False True gnome-stock-book-open Image preview True False True gtk-print-preview Similar link locations True center-always 400 300 gurlchecker.png True vertical True True automatic automatic 0 True 5 end gtk-close True True True False True False False 0 False False 1 Page properties True center-always 450 500 gurlchecker.png True vertical True True True True True 5 vertical 6 True 7 9 2 6 6 True True False False 1 2 8 9 True 1 <b>Referrer :</b> True right 8 9 GTK_FILL True 0 1 2 7 8 GTK_FILL True 1 <b>Server type :</b> True right 7 8 GTK_FILL True 0 1 2 6 7 GTK_FILL True 1 <b>Source :</b> True right 6 7 GTK_FILL True 0 1 2 4 5 GTK_FILL True 1 <b>Modified :</b> True right 4 5 GTK_FILL True 5 True 0 gtk-missing-image False False 0 True False False 1 1 2 2 3 GTK_FILL GTK_FILL True 5 True 0 gtk-missing-image False False 0 True False False 1 1 2 1 2 GTK_FILL GTK_FILL True 1 <b>Status :</b> True right 2 3 GTK_FILL True 0 1 2 3 4 GTK_FILL True 1 <b>Size :</b> True right 3 4 GTK_FILL True 0 1 2 5 6 GTK_FILL True 0 5 6 GTK_FILL True 1 <b>Type :</b> True right 1 2 GTK_FILL True True False False 1 2 True 3 True 0 gtk-dialog-info 6 False 0 True <b>Location:</b> True False False 1 GTK_FILL GTK_FILL False False 0 True 0 <b>Meta Tags</b> True False False 2 True True False False 0 True True automatic automatic 1 3 True General False tab True automatic automatic 1 True Links 1 False tab True automatic automatic 2 True E-Mails 2 False tab 0 True 5 end CSV export True True False False 0 gtk-close True True True False True False False 1 False False 1 Image preview True center-always 600 500 gurlchecker.png True vertical 5 True gtk-missing-image 0 True 5 end gtk-close True True True False True False False 0 False False 1 Search in progress... center-always 450 500 gurlchecker.png True vertical True 5 vertical 5 True Search in progress... True False False 0 True False False 1 False False 0 True True automatic automatic 1 True 5 end gtk-close True True True False True False False 0 False 2 500 5 New bookmarks project True center-always gurlchecker.png dialog True vertical 5 True 5 vertical 5 True True False word center False 0 True 5 bookmarks_project Choose a bookmarks file True True 20 True True False False 1 Do not retrieve page content (speed up the check) True True False Check this option if you are not interested in bookmarks pages content True True True False False 2 False False 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 Search... True center-always gurlchecker.png dialog True vertical True 5 vertical Case sensitive True False True False 5 True True True False False 0 True 5 search 20 True True True False False 5 1 True 5 3 2 5 5 Links name True True False True True nsd_search_pages_content 2 3 E-Mails True True False True True nsd_search_pages_content 1 2 1 2 META tags content True True False True True nsd_search_pages_content 1 2 Status code True True False True True nsd_search_pages_content 1 2 Page content True True False True True 2 2 True end gtk-cancel -6 True True True False True False False 0 gtk-find -5 True True True False True False False 1 False end 0 Project properties True center-always 400 400 gurlchecker.png dialog True vertical True 12 vertical 12 True 0 <b>Properties</b> True False False 0 True True False False 0 True vertical 12 True vertical 6 True 0 Title: False False 0 True True False False 0 True True 1 False 1 False 0 True vertical 6 True 0 Description: False False 0 True True False False 0 True True automatic automatic True True word 1 1 1 1 1 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 Open a project True center-always 600 400 gurlchecker.png dialog True vertical True True 276 True True automatic automatic True True True True True 12 vertical 12 True 0 <b>Properties</b> True False False 0 True True False False 0 True vertical 12 True True 0 True True True False False 0 True vertical 6 True 0 Location: False False 0 True True False False 0 True True False char False 1 1 False 1 True vertical 6 True 0 Title: False False 0 True True False False 0 True True False word False 1 1 2 True vertical 6 True 0 Description: False False 0 True True False False 0 True True automatic automatic True True False word False 1 1 3 1 1 True True 2 True end -5 True True True False True 0 0 True 2 True gtk-ok False False 0 True Open True False False 1 False False 0 gtk-delete True True True False True False False 1 gtk-close -7 True True True False True False False 2 False end 0 True 5 gURLChecker center 800 650 True gurlchecker.png True True True True True both True New project New True gtk-new False True True Open a project Open True gtk-open False True True Save Save True gtk-save False True True True False True True True True False True True 0 0 True 2 True gtk-dialog-info False False 0 True Display tooltips True False False 1 False False 0 False 1 BONOBO_DOCK_ITEM_BEH_EXCLUSIVE True True True _File True New instance True False True gtk-add True True Report export True True HTML True True CSV True True gtk-quit True True True True _Project True New project True False Web site True False True menu_new_web_site.png Local file True False True menu_new_local_file.png Bookmarks file True False True menu_new_bookmarks_file.png True gtk-new Open project True False True gtk-open True gtk-save True True True Save bookmarks True False True gtk-save Delete project True False True gtk-delete True Update main page... True False True gtk-refresh Update all links... True False True gtk-refresh True gtk-properties True True True True _Display True True All the links True True By status True True Security alerts True W3C alerts True True Good links True Bad links True Malformed links True Timeouts True By type True True Document True Image True Frame True E-Mail True Stylesheet True By protocol True True HTTP True HTTPS True FTP True FILE True True Collapse all the list True False True 0.47999998927116394 gtk-goto-top Expand all the list True False True gtk-goto-bottom True _Edit True gtk-find True True True Remove all 404 links True Will remove any bookmark pointing to non existent page False True gtk-delete True gtk-preferences True True True True _Help True gtk-about True True True BONOBO_DOCK_ITEM_BEH_EXCLUSIVE | BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL | BONOBO_DOCK_ITEM_BEH_LOCKED True True vertical 275 True True automatic automatic True True 250 True 450 True 0 True 5 vertical 5 True False False 0 True 3 2 5 5 True 0 0 <b>Security:</b> True right GTK_FILL GTK_FILL True False word 1 2 GTK_FILL GTK_FILL True True False False 1 2 1 2 True 0 0 <b>Location :</b> True right 1 2 GTK_FILL True True False False 1 2 2 3 True 0 0 <b>Referrer :</b> True right 2 3 GTK_FILL False 10 1 True True never automatic True False word 2 True Page information True label_item True True True 0 True 5 vertical 5 True False False 5 0 True 0.10000000149 False False 1 True 0.10000000149 False False 2 True 0.10000000149 False False 3 True 0.10000000149 False False 4 True 0.10000000149 False False 5 True False False 6 True Check report label_item True True True True True True True 4 True True 1 True True 250 100 5 popup Updating report... True center-always gurlchecker.png True Updating report's counters <b>Please wait...</b> True center 500 5 New local file project False True center-always 500 180 gurlchecker.png dialog True vertical 5 True vertical 5 True Enter a local file path or URL to check fill True False False 0 True local_file_project True True 20 True True False False 1 Do not retrieve page content (speed up the check) True True False True Check this option to scan only one page True True False False 2 True True 3 True 5 True True False False 0 True vertical True True False True Uncheck this option to check external pages too True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check this directory and its subdirectories True True True False False 1 False False 0 True True False True Uncheck this option to check external links too True True 0 0 True 2 True gtk-zoom-fit False False 0 True Only check local links True True True False False 1 False False 1 1 True Advanced options label_item False False 3 False False 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False False end 0 5 Authentication False True center-always gurlchecker.png dialog True vertical True True 0 0 gtk-dialog-question 6 False 0 True vertical True True True 0 0 center True True False False 0 True 5 2 2 5 5 True True False 1 2 1 2 True True 1 2 True 0 Password : 1 2 GTK_FILL True 0 Login : GTK_FILL False 1 Do not display this dialog anymore True True False True False True False False 2 1 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 Cookie True center-always gurlchecker.png dialog True vertical True 5 True 0 0 gtk-dialog-question 6 False 0 True 5 vertical 5 True True False False 0 True 5 2 2 5 5 True True False False 1 2 1 2 True True False False 1 2 True 0 <b>Server:</b> True right GTK_FILL True 0 <b>Page:</b> True right 1 2 GTK_FILL False False 1 True <i>You can edit cookie's properties before accepting it:</i> True False False 2 True 5 4 2 5 5 True True 1 2 True 0 <b>Expires :</b> True right GTK_FILL True True 1 2 1 2 True True 1 2 2 3 True True 1 2 3 4 True 0 <b>Name :</b> True right 1 2 GTK_FILL True 0 <b>Value :</b> True right 2 3 GTK_FILL True 0 <b>Path :</b> True right 3 4 GTK_FILL False False 3 Do not display this dialog anymore True True False True False True False False 4 1 2 True end Accept -3 True True True False True False False 0 Refuse -2 True True True False True False False False 1 -6 True True True False False True 0 0 True 2 True gtk-cancel False False 0 True Cancel check True False False 1 False False 2 False end 0 500 5 Save report in... False True center-always gurlchecker.png dialog True vertical True vertical True Choose a location False False 0 True 5 export_path Choose a export path True True True 20 True True False False 1 False 2 True True 3 5 True True False False 0 True vertical 5 Labels export True True False True Check this option to export links label True True False False 0 Numbering True True False True Check this option for links numbering True True False False 1 Only external links True True False True Check this option to export only external links half True True False False 2 IP address True True False True Check this option to export only external links half True True False False 3 1 True Advanced options label_item 3 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 Bad extentions on server True center-always 400 300 gurlchecker.png True vertical True True automatic automatic 0 True 5 end gtk-close True True True False True False False 0 False False 1 300 100 False True center-always gurlchecker.png dialog True vertical True vertical True fill True False False 0 True True True False False 5 1 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 500 False True center-always gurlchecker.png dialog True vertical True vertical True fill True False False 0 True local_file_project True True True 20 True True False False 1 2 True end gtk-cancel -6 True True True False True False False 0 gtk-ok -5 True True True False True False False 1 False end 0 600 400 True center-always gurlchecker.png dialog True vertical True True automatic automatic in True True False 2 True end gtk-close -7 True True True False True False False 0 False end 0 2 popup mouse True 5 vertical 5 True 5 5 True 0 0 gtk-missing-image False 0 True 0 0 True center True False 1 False 0 True 0 0 True True False False 2 gurlchecker-0.13.1/ui/link_status_nodata.png0000644000175000017500000000113510744343152016027 00000000000000PNG  IHDR b bKGD pHYs  tIME6ҕIDATx=oP:η$) !Q$ ?s`KJU4ub؉];NlT9=;=:GǽQ_M=ĝyH}+@/59óf ?BnAdm0C ߻ 0 &SD)CqmϻÕJR(=ݬo"#7 痋O%)T>w:gD,rɋDC/d-ߪ>\*E{ *HQdV@ ']oum[ǡj@! a: 1^VF1 3|e}[ /fJɺ~TIENDB`gurlchecker-0.13.1/ui/link_type_href_ftp.png0000644000175000017500000000227310744343152016020 00000000000000PNG  IHDR bKGD pHYs  tIME!;`%!OHIDATxڭKlUg^w̽rKomHyH.L;VB%L4хK,4(B1)}v:w̜3n',~/,27x t4}@Z]PTc)wccDŽnX[xr}Hy#7ggf" @ lݾ}2jLM>aLϥ{ v\>=F(2Qvz¥sgF#^3:qpuhSe׮Y/8yzқ|# nޚ:ȇ+^p x@9ķǿwߦ{}'kcY<$M 2Ay]r{!`9 &qHGHd 21N_WcpO\ѱ$Qr۳gl$MX]Y㥡uu tT*Z4ngF+m3 E_GʖA=6"KӀ{cqecY9kAfQm6X=i`b4J2+da>!/n,:.㺘B`EQ[ pکӆe۷Bq\FdyyCT)lۡP(ϻRJWJ_zͻWB5 Kpr)fc6~m۔1 0Ȳ,EZXL\lT}jUū)*"SR麑QLfM\ΦP,EBX&R B3\54*nOn߽QT,V.BIǁ-E`XQ0+KӴVX^Z޺}W%4= J)i4M+J%߭T*݆atiy^[EFEeYL ,3 0]׵{{{o咮nvaI)kaߴF3yIENDB`gurlchecker-0.13.1/ui/link_type_frame.png0000644000175000017500000000070710744343152015315 00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<YIDATxb?% @@ ID$>b$5@ ͌ 6@K>|H21010 e5T0 `Af B1 ==/@ VB "е30`QA~^D_ҡ{܏x PUd&UEW33~[aFp`1A t@X {y޼yP?@!33E=@`#?!AD0; 0 `8`@z(񟓓 0]s`'31@@0! d36"4??E=@ab<r| r3SL@1R τ8F!IENDB`gurlchecker-0.13.1/ui/w3c_alert.png0000644000175000017500000000161610744343152014030 00000000000000PNG  IHDR b bKGD pHYs  tIME9k5tEXtCommentCreated with The GIMPd%nIDAT(ϕ]LSN?(UH)g c$TY8]5$Dz!&ͼ0qbf4xmf90?)#thENm9݅nܿq8DEXLR--+*tSDe <WrCesom`@LDUe[>,QQbi7L_"Bl=@wA?/ @rFǢŽu^Zb"gv \jԲbt9?_뉞j4U^|.'ij~g0gY>q|@ @ee%"I$͠ˇ N]A$ҩݒ~ܷN$SQQi<\ajk3&*xgf_?dVXс餽EQ+`JSxci!tr+cy:Ɣe7L?S^-i)!>J|K<µ/) 9;O0]:]?AjQi/'Tɺ(:M8rԾ^\e%حvu0d0 c!";aVAsrI{j! }>-[:D_o/x5jӤ=dEcC5omz.Q9?MM?~b,ϞBbZm2vHUȈL$a~>|߿X&A0|سgɓ'?c43Y`jjk׮ @4.@ p "d0 Ă-@ 8{2C`g?y,5&@gݙ |U%%%`?deeJJJM r 0#(((0̜9ƍ cx÷o֮] 2?Ązzz` ={9s  ߽{ --p![n1S#åKL`bb@a [h/_0ׯ_@޼y3  x:K" npM۷oc͛7`\W@7nVPhx)CBBU@0DfgNE9@9<IENDB`gurlchecker-0.13.1/ui/link_type_image.png0000644000175000017500000000151010744343152015276 00000000000000PNG  IHDRabKGD pHYs  tIME+!ۙ+hIDATxڍMheofvfv3-!FMH<y(RWГ/补5^<iVE&٦MtcRK9{x wN,to.<!h]9JIJIɥ˟^YL`Yoor>Cp^T),K/0ưiyIZ>,Ѻʢ@x>qTH]WX{@8yj_B@JդAU CJHUQ2E0 !& zB0(Owk5ՖPNOF(%A N#y4nnp3yF?n@Iehm kۤ <܋ϸ <059yەʌv%J d89|L:j́N!`ӽ1urC#0( ;>dyգ(yIR'v_om|Ξf.7δ{\`&bfsqnܠ4?#&du'f&O"BݭH2Fj,N WΑ{cON>^|1Tk 7_?^/~votyrup$@~HD3,xث[Mu\[x ޣ2XyLr@IENDB`gurlchecker-0.13.1/ui/security_alert.png0000644000175000017500000000114010744343152015173 00000000000000PNG  IHDR b bKGD pHYs  tIME92EIDAT(ϕkq?w^HOr'-h#M 5E)]TnMŹH],M#iMi$Kr_/L//^QW /P_h@ ra>!Dʧ<ܵ>yOLfd+{!6 HNE>s3-,Cl@QfF+M}4;+07IENDB`gurlchecker-0.13.1/ui/menu_protocol_https.png0000644000175000017500000000154510744343152016255 00000000000000PNG  IHDRabKGD pHYs  tIME 8>IDATxUOh#u?3LMb!-Tv݃6lm"-j C\f[<BQaA(EeKdAEj]dgˬLbif~?mjsz{{O,KT /..V՞cE&ee],p<ܚpVWWҒ~FFF.YC8+Td2iظ:99yR:LfdjjH$ʥo,쫦i^rGMR]׽-Q2dyyJ 100`ضw҉D}= [47s" y;88x&˅i%5M39:ƍZ/ ЪB1}3>>2֙ ۿ|)?)$p|4ڣz= 0Xi]8TKP(88/p?1gikkctt4{sE>sI;s!,,, |5Dx˭{o~aj5b1Mz:~!DQQ7 $===r9R"Pw (A#֎k# P,QU޿{kff)%>ow<|`\~>&@㳳e?+]z$[8EPi wvv*wuulfkkYFFWJ _ETIENDB`gurlchecker-0.13.1/ui/link_type_href_local.png0000644000175000017500000000154510744343152016322 00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdV6))?10111<LRVA)/3~o0 #i)I> reyßo<}ʰdm?0D0131pj1P2ezWp ~3 )0@m@z DHJYw, .?g8Ԭ(/pw1AHPAƏ[Ti PH/@] *y ? 74?;䁴 ?# ϟ?SKg3ęs;DdTx 4AAᛯ a`gcdؾ þ#W޿ % 4oA_&+/ MK 21hyN>~2Lwd^=!8@1};1J1|İ9E1cP ޾yuD "< aap+@CP ##S@L_8koR ofԗcvPfWd m U^}/ݺµ[!>d6|7{mɄ9ox_a #1s.LfN° e9aaV 1bedEopfL(IENDB`gurlchecker-0.13.1/ui/link_type_frame_ssl.png0000644000175000017500000000133110744343152016170 00000000000000PNG  IHDRabKGD pHYs  tIME 4rn"fIDATxڥMHTazG52 a)_.)rÀ@aZ`-6\ Ľ]U> i&A=-4˟V.y9c6Ƙγ .Dӌ1S&{zz$LҒb1dffF @DhvCܺzNn^ڠtuu H2dlRl  HR('6DD "(s˲&\WG8\X)wX4(Zm}JS_~v$/%"IENDB`gurlchecker-0.13.1/ui/gurlchecker_icon.png0000644000175000017500000007222710744343152015461 00000000000000PNG  IHDRA-ˈgAMA7tEXtSoftwareAdobe ImageReadyqe<t)IDATxڬP @SQE+ODd/HH}3Jk  ͖e!"TUQ%$pG8 eY0#a4M}c]Wl&u]2Gny,7{/M<A8e@HaFa۶h0f'o skEPy{MF}Ӷo{VgrF4? E >?X=EF֦kc[go-x]޻Z#9ċF>yb)ys_!}@Vjqikv)ŝںlByW<;yqk lZg;sTqN]em $@vx|ƈ(AĹba zPbpNirx١`pR *qY! &` خbofb '.*M5/I|uT=oc`澭l|nZcװZ)0lgQBjADc%10ӗw4G)/BZbӫ+qqoэ$y/$XT? K)WkmBWE}T%'FOe"KsT/]vz"ju {Mq'W%@gGB T7@PL2~o(gXSn-*tz@-9Tգ4,O4L\u$ y+eZ  {{*_*Nxa PO)"V$fvvf'C|&= ZJ47GDLcKՎ6%҉1I]NO!0V8crc\B+yda3SZ"-,0?~ U x1AOI6CO2l? {Ŷ؏Gxﭝ?Zi5P+@6|X$^XQ(}M ܭm4)T `䛗HUSY3'i'dЪ_d"D /N?soU{§`_b)0 ؑ,9 nFPW #V),K(0z_q)5XCO=SS5QV1a\STͬ5CҀKvsݗb+.x1a g֑ E.tQ(I^X[㭘Ըe83aQp*ˆȠ)T=GXxQN^ujBĆC<ٕu9>.PŅ {6Ltn˝<_%gc vf+@as)O%E}N$dLj|YxFs ^l.rVY ㉈m3#@f{b ք-7#P\7,ŽufڀC\w\WJѶh3a&[>A"m.m,7_Ku3u $nф9P}Rv:dM*)3hP[~&/A3SpfבٓėN#2 G5ϵ)uظz%Bf/)P EA^'PDLA5$y{hPvOWV6Gg5:DAuMʎlgVa׽Y xSC9,΃nqZuS7=k}2IW~YvL @} x(bB?jF) @L ҏR"DI6佽pq9D_u:|WzqOFY9adj{hk Nd$` bin>Ҍ\8om5LųLmԿ8~ Xc2s&ՌR ZO1!  K}?Qqg1Hۂ\ɤ0ƃF;Cli BJg"JЏmp8O^mXs"lLj=uQY7U#;I8Oߘ.W"8Լei-5WqJdm@[VsI^"]|>5v +0aę4ql;0tkҖ^n k3z8DYsܤ5gHk-!q@0e0!{ F$s@kו^<1Ľi ՌD-jyNb97S9eSil<8UV @}m,t`j詈W,k5 =uIH:s (gO_K^`KFC>ksmWԭ%f t`USi el6OQ/xzʆt0vAО(;do;Y?--@A%N&>`.O}<ʔFf/Lƾn۷ ǎϟ Xn)@ Toz # Ihq,aTqۡYzq_ԪuUG`Kk֙U  }B/M vĽ%_)s֬fpһKW~99cԫ-U eK*&"$q3<1-;W73mVqڵot\`u[7*%&{1=eRIHg6E fI`|E[$f@zPwǃSi΢NQy6MN%2(C=DiڵMJČeǯ)f0P'Xzף("$kW(h`~fLҫXL_"sEm$Y%n"MFkBM:n2to!UAœu[]g.%/rP<1AЋ'1c(٭4 4@HX'yKHTnqX<&!Xgv\Nc~ץF ʽ@;+bsLU5Ҁ<Ū%?-sǡb OS DR19.YyMm8<F=:E2LTVQQtQt9x?R޸PJHUd=lGpf*~ݘY?x9cBO,YQـ*iN7|9khA.>* mx[K^ 2AvZ%i?yJ[g |Ʒ;B2lqycf-9{eVH۰[bO0g#k.GM6¦GLL{9Ιㅼ>G^``OW,YQhPcg Ay^ǨUȆ2qsE ʦ i->+k^~Ck ݬ̕5Ɍ;? s_xcBgBu%4_jtEχf3FinyPYxN6"Vl llh-yRQ]j$Ֆ@\uELm+1w0 P?u@g mw&Qp"7v[y 67²E=cH#(͐Lw0E\c[OاЭG!aZyO}^caucz6ȐQ[o}䂊@o4vi vA;ҵVyutoŃVyv7_b۞J!mK ;Fao.^9č1870H)Bs!K؊e4GջD]r^l_wgE(Um_6rK;Pt9zj <ԝ9 fb`h+VZ@tWABdA6TKY: ,SbWOnz c4}4q_N,wVt0b 1Z TWk @0po GhgQpqpiӚ97r/]x9R)KH maX 5թAl{it{U{9aϺOƭ<^ί+sgѥй@(sQ-C H+S7y4=gngkAn* ns r‡(02vPIb[_9c@.͒Ե"i#tL qp`lTtb$5it謩wsFK#cMH(7L30a'2ӷd`zFk  sxx `N jZ'/O{]fjdA@gI>[{L4@tA4an"iJ 6oOI"CC2idۭ h,GHdZW af!Jw78.= " < q+cs:ژ.{0Yy-՚ 7Ε-`d䧦}ò+֤呷gf%*NWd2!v⢠? # ]5C [J_;H@=%վX[M`10 \X[!y?Dgp=ңӽHRы3߫!&)3rLV}J n+ޤ, FT ` r$Lϛ2"G'_3Fa-C.֘;Ky0HBG7ҏV~I%w-`*мPoN_׵5#c탬yhȦۚ¬Y̳ie]\Yۨ&lv/{Ib(]KJ]D7y#)`h\H'a9ger@Ǜ2"]S@n@7)sݳKn#L3H -!eJX|v׭rƺPN,0%dKF! cL=,kHt#39~vǞg8Itɺr[*~GaKN, u;[!rB"8ۨx9 ܀\g\NkQEʪӚN/@Q b3 P ֢qWD1hr`^cbVmXːIZ P)st3j?*i ^;B0 4_""T}O;3iF܁\H!}T1s^_DrnٻXs =I.̅b-: j<fe{;cB( +rJ[~1hoNBKZ04|=켙#ǖ18m\[K6|9x rabPL{\ދ!:e,kJi];w60 Bp,XN  .>B4*ClF* D: lh < I< ċ, ʼ/&Y;cA膓N3ta(5ㆯIHD'[n6EiMt;+IݏV[*ϵ \EeԐaΉU>s/mS=珯ص]p 8V ^Gupp]Jh14 s`n)evT Zgæ]eױ_8ħN3u֣1>50 Mp,` Ra _ųxBjܵ6" зX@mD{,lsiI̖[|o|)RGV dc]p#c{LMpm}mR%"gՑ(;B_׽[R< ˣRh5vҰf-6kf|YڴS%heXoW?^e gK kA Mp7mu"0F@ aS/W3nUkPU˱gӼ]=kRQ3JЁ@?sm:p );>[/W;Fa(z[ >%t 4sXH 4.6aXGؽ>J:ʿDHF5J38Z^td! B[:"?w*΋ꆚD2nV X\ۊ. \r>AI[;FaoȞbZḒm ^V /%lX7ʢ@f5 Xa~ƪq@N_۲;%1kz7b4;Rd4nUϟӑ%:[@pc+3gcQSAPӭoBǢo/[rY‡C.><= DFu l+͇N4f`}1i'2ܡTgsbYB+|]'sgZ2B)=>4 v1:T.ǔ{뱛Ηrg'MQT_˃tѥ6knGe/D3'\ךl&/F: IrÒMfjf0m^H XqRC}̝A /2!(VSff]"걥Օlr.yOXsEUyhoPw8 I4,,&:9+T|-@gWН6+`70R@m=; \@i5g 4f8(ո6v^ h4z1 0 Cߺ\( d 1$Kʱ\*Xij*%e<+\C膡kȲB 9yϝׇH)~wPmĦ~kQ@ݙ@^L% |ɪhzqceM)Z䫽;X!Q02CByꟳ]tmfý|0ޕAjO'K[0w(0  A۱[IHܧˡ%KRR9ir K%.S0;~éwZH εXjr:BDK/{|Pw( \7Bc)R&Si pi dG| Wܚg wYVipI ChѾ(uIHP[Ndȕa*Nh:Cb @ݙ@-%؉DO1:Yr<+xEй|7r v"  e " :~.V +)H `= cD7#sg0\riͨ.V礝 `$5dHdNό"fptiלqM'2ʼn5j̱`Qa. RqpPBդgK`BC] qݥ+:n3/YsuoИ\K IՑ ֕QϟwJ&qC0w( K@pr`PrUzbxjVR Rkl| rt31<(KYI2D@s]?B碵~f-=|ۡ,r崫TM=I':֟|J5(x}0w(P Ee -E y,`L4VTc#Pa(ߵNF…RX~)+f侵r9+0{^J Л?#qw@>R g$>f!05h\fDoδe)G,'ch%0\D mO$u^<9vE*?b79tGt).c/nhcf\s]|d9.M6zZU-4*piZWlܴ]gS x*)q6 mO(Uџ+D<w(@ (,@CC&ZnjF[U;;D&y@mbu} E%55b:N8wLh'2c tS~ M7B%qg /)SrfA5.d3ܖLD3s4_m/eH 46TQhtEu R&9&j5/huH̀|5e._\vFeYvd(YNm~ma " E餗 Jhh,H6ߛ?h6l,Z{}wTskZ+N]%̘Xʓ݅oК=M)"+wH ۇM9gE@Q4c3NVLyv*2sY7J_nO%`h/&?( Yl-3C+ VyT{YDf* 9$]i1Y-mESy* CP&hIO8m=atflz.s$O%f4~bE83_<1 0 /+*-l]lUvlw)|yiF94B|[n^!X@lmVuh M ^ȼ<8yiV.TڨSq_Rh9% d#-X?W3H)x^*RКmM6a{n(wu fX K* N8f4aQ%fk OUHͱFQg=_;s^6eT_ \Ȋ$ӷ̫(7/yOYϘ^Cj2=7,lQ 0]<RXh {Iz83!n[㴇'QPM4ALE1$t]V-}m:"}ґ%΋lghOۋvn4OR.S؛mzه8-R66@?W;H(۸ >En]8&1&3@ɜc`rROnnָy Kw{sd|fT0hYȶ"p5\e> C2 D@ sece Ufc e-c 1%ҍ .n,qɤ_j7S3LZ܀|vlyyr&\UeEYւHS^iLV"ۂdO!J,/!P<|"pWyzRb/Ato{Zjڦm<9x7\kѹE?eg;=8lkc@HZHKd= ?ʞAi2vwkq|uv3FT! W^-\ym VWT  na'>x,Ж<4%3f'\] RsnI뫍H7/FϮ["g=vߕi' TVmhU >笑::ڈ̤}}v+0 @%!LvMA$@kj,֍|N [ت/#\oZ Hn5-W̼;H!‡?ẕ Tp푛b+{jTY{<v80 Ek'Ytc E: T le,n'`tQ '~7Yu~Tu2;֛v$R_Zž*ujd8łȫYM(O=^/;&3: ͇1 u#mw P,|c:Mbr ' q^ʾvvd֒u(p6Qq9Fw ENPbJ{O|olk2 ŋٚgBN3EZJQ[qݷ3 ae'⤓TPп_/4Ql9EcֶG'eZm/Olg}ݝL hᩴ@VfY3Jg\㳷pe3G9V\Nuw<*7L%G3-hca5ԕb%W=7@댊j +;+:1)A'Oag2`q6\mݷd'`VUڮyPdGyguЪ :;Ɓa(x[#=Y ؉!4fؕ~n _g7 W*8651-ij9iGհJiH3nE} &5鄏6סDG^@஄sc߆j{Ra [Ň]@VIpF# zWМݾxD,r*xlp1˯-vy5_(1-c=< 6X{-mŴRءōn3cлr|LRa_KCz$5Mjs&ldYiԛOA77-L?@ܦNsAQÆ3.9gd6=+{ AEq^ƞ Ra %axioE!5=mQ[ MQms竒#W?VG4OYAÈ#71G ϭĩh*9ۑ!lf>G a1][ńPܮ2 gC?ԡ՞SZ]ƼnBC(ʘCXA4; Fi/&?ѯO jb_\JJ1`>cs.rRMBv 5$֦qTsӯغ^2_Q~Zuu ` Gh@o-=<(JhS=ʳIm~775nPtWtn5D?n^" i22i@ۿGK:}䚳0*SўRAfTYؽX8v) Ep!n;@48]3z겕xu%Iw PSV^okEiG9꠬h =7fZ0iJsz@'(qm5`_TD|O @ o-]|x\^Fg6nٱ1uS܋e 1 Sy].W_#(sH}EEUj6-Cjq,ʕԹ0zZS=ܒ`鳞ֶ?;'=v) ECvM)#1wz2tVz@ح^X N% c5JĪ =l E`k* &MY2f<%wgSLN\a5#gWaK;גSO mA %B`4sb񖦩bȶvvQ!Q֨eJ5DdIIoI4fqH;ů,8P]|; h R;?`S @ 0 tlKJ*,ЉwgĒ@Gj\vC5Zgɍ7` *9TmA=)α][iءn Y2}{>gZrx7FA߆ݓ.xv'0 !;Aq\C $,6`&)5lFooG>u@3j8|u7~\d~3>1. 1ípϮ /qTY^=O`[e*W:dE7 0\7'yfT)<;x…x|}ľ fX U+&(54L!jBNMܝ忧@OإAn^Xk 7G-g {PjMC atf6ڸ\?lD~(SB,Ծ3F@e|B#n ŚeaVιp@Gq`O Vi,K(@z?SmdJP}J3m_:"1Ʃ2eI9YꙫKvNJ?T>* Nu}A-soFj[I`;Sʛ/{IL K"c\&OMedZH6#& 0kUlI Ww /a[t1z{nzf;N|( l]Y7|^kݯ5'og0 ?ҿ {S!T#⸒rġx eMdϲYL[qq ѱQb ޳'yy=ZaxRzISCzZȪƐsI(ȕjF|j+hm&qϬyHBNw]ELaXW;)\l>ph0$^!}xW=sH2 A!soDn==կO n Rx 0ξaxT'̘]?-TRG/w0kOCwThd6HC&  yᯑNE p ?HO_U.I/r< Ct}(c0wq`SmF::S|zZnhb+:)Ѝ6fS ZAجMBnnҾZVD;I!69UQ6;v5gӼߓDϿ%hAR'/sX OF$`| H_:628>y>lv 㺡u*`! 0@^j8:9aF16Ђ \R5иCv&)@ ]8S WOM(߽gP /GgF§O.JL_:;0oi%q4.i*)Np٬0:tvܜ h+C;$e`|_-ensUB2ݖ0_j|JxsNm4n8Ӫ]Fft`Q)\rRAeC$26^ŧ@Ȗ *T:(lW 4yIhgo$f"9:,OG'wCauhW,>k ͎{n,DV3q /ΐZB_ ͩ,[j 5 `+Ma;RL3ȫa+)@ v?lm9ȳ1{|-ȅyAD jE4Ѱ-Ag6Iak-w+_wyجPS2L~ld6u AX„pD>w^r#}}B @%X$\ MБFlU'Cw{0NJ`+ŕҘNH=zB%%3L }m l lg f^lCKcp3J ?A;h;cBK^܍)ID!fE;-mXES^1kPO(RH=yV%:mE#wFw S@ @C 8eY⪫Nr#/uG>+dwt5&< K8QŹcǣ)z#3x3~qg*}*zGkh=gw tc"S@0Ee C(1,ktlDu{6Zx۩݌Qb8QXg'4}p02oGFz/ll^>IĬ஫+~y& b#C``aF (M\ RJ MQyTuϟ@ukND׹E1o_TW&!jXvE^c jxH{( ;ï0XzjG2\Ray]A.hG= 5c}}5]A 0 C[m%XɃ4Ͳm !u7dߦP bQL9esS( LZKuoRP ,:}h<AVhϢj[' ? e>4Q&$ԡ6l<2VzƮ /hv%aVȐ=[~7&*:k@CZ;zGUju'z)&`C3KQU`A=ز5VTpc0N#wC)A!>4#^ً,G' RG+80wJ n k"[evPj\Cy_ sOz4?qs,[֮(a2z/O0hս%d-J[[ͫ>cL%RJK Q佮 ~ 4A gUGmH7 (C5)]/VՕ]ҸCG-ms R809Qno=/DWE)}i"J@+%i)%;g;f>v~ @n+Z 1w?_tL0&t}p)ҷ>I4o.${ tT@~^Å|e` s9rŌO޽{O.0a@7iiiOBFBB›;wΏf. *9hM4WQQQaaaKw>p?8prF#fʠ ]KJJ+++A DhgssB ?]u*TTT6n*%/_. oB +U N4H Z8A:2e33tf֒E,X MN[a5u2b\r?HN`θ/G8~ƾ` +*,Q{dBϿ2LA{*@Xm2R7,OaoߚO@P؆_(4"\cTRy^8Y";?^ݳt3VJ=N@q)JD(\n|| _w )"@4PDAV*,Ʊ۷3h^gdOL;GS,D˞ޮȗp,6,&x ڳ|kS6D:8ro'v@ư$kW!@oN핌؀#vr~iRuWYG}}d9t]we}Ygm>TUdd EIX}[>?c+򢏍zOZ77۵5:Ŀv^eee,5kִ>}54L*tfBPbuؿH|- J3tĀRWF&5f bo9AmlYH'l\:;_v# J nnn *@#)o`%9 dWh5*3 l`6H d 0226m@͔@{@թ566 `=#994tTJ(h; Ty60'# Iԯe```m6VPƍ" TTOM@7 cPiE`ucfF`[b1 r l kp6n`:9 X i:`Zcu΁W\\/MOD@JΟa(&RA)XA\\Kp tGN2dMTfAy< fIwsM\@ٔ Q(Zn>ҍC~ꩭk75ۍ_:m-SL$GkNx?>r;e%v>~ k 5~5'b>MZUeu3I K6p1N\Z)dƬJp(+v ]qJ5sǓ~GpD83/C4(bu/ zS)&IYg,3t9 ox,W94-GM4`O$דLaΐzttL5d2ݗ]M @N0l 'XnZtQB6ZZ7||fdhN+h.>4llɶH$Na$K|٧Cg_Ցf&}N7,Y@F~`_ G'!5bvFv𡓸AЖe>H BvuXtҨ>7FAGҲCYkdߘaA &cU{Whv4M (4R3XsOͤ[^ '~"ƭ}7nkMJr{$+=Wwϖao(; Ӧ .EAqQpu7˳nO nQ6wtB $d293snn>cd^Wl&G o!aL賬/@5MGҬc4M/Nz~'xթ?cM iЌۺmۦx$jLvNK +?q:>L QejFjj>m;ⴜ@;ߋ"_;/y zAmc`P|A#t1y'zWm[ǖMg" ;&  ޶<28LV-ndWw#dZ_!XЦa1~p~P jO,`ß=} _(33v%j/@ObEAv-7=qD9ww跠UQ `Ȥ. `؋ =r ` ́<]X2((؟`{l+ـ-u0Q6c@g+P__oKzh0FTr1 ?տD͎d hTATZB ?nP;f}}}P@/?Af5558} ;@ ]ZZضVTTd L|&pE}A;`nan5X1h}@'u@1A5mAr} FիW!^.$Āy`KKhx lgyƅhA㍠v@s4XXEuA*r rʧHK ?y+@/䄁 &J uh{vr=r6`{ oݺUAOϜ9 A@ F6LM`К0K5fhМkav,~|?@ 031x Ufh֩47oivv6xwS321f ,q 9ϟ/ kWRXڂV>܌3%36PMHK(@L&+ې)l tA#" @!7|AU}h{!Z4teA)NZm<VYwAN4dH4` ; viӦv u(G!fJi`v@fX&%<`6Xa'+#@Ax sw`Ӄ3), qvvvذa#XGGa`ؼ# 8FZZM?&_0tRi`-s.//Wjkk Jw QXH&'q0e#&hZZݚ5k=` ӧO7.{xo߾&P4ݤ rSBB꿡k'^7d]JP)hte15 7]5\ifD=@fe ]%1 s;~:8eYZ8dqEЃ4NH auxYZdS0p\2821Y[?{dg:+ OdxGrm%(0el{Ѿf3IV*20ȶ^QfQ0ihv.B l],{e:%4_ݣ>L;pJ;I2 &HdZʧ)_x"0`m@'[fp>To ?|˱u]# ۺ.YN&t2:>FlQ9O8Ŋx{ΩK8 WPh7"t' fe@ȲHn.M}/Rľ` "%U0ѠBff=s2F F]睁lan:IfҔm'S4V+^ ge.ɠjnך"~^չ818Ԛ@=P$I:ֶ(]|>|'P.Mc{a"V`?/<_ʙWoa4Ƿ=@M!~"NmweM~BFD8;,6b̻3Y[R AYupG<7-,WذSLh t\%2c%ITIL ю(lQ9ϲl-a}o@&n1cnq:.a3[NV~AzxL Z{W:8?Wٵ/i:4c\&.?̣yl(r,c׺%f׫Z=y:5ќPzWVe1 =հEXȼ1$gצc?\[ue߷]A 4IL}-}o6jĴH0eفe ݉B%I_<ῖe^2υ3_lBW*?K܀AX$ZqkE h3F<9~o-&B7ҷIP̡$}9e(1 i}V2 x AˈXLѦ #3B^뿮'@@PX͜j6ҠfH\Пgѻ'@C|s1+>Wc88p" &p8|2Ġ[x:vm5|wfz8ށPިcKM<+7Ot1'8L:9v؎N|lna(]3V&aQ"POO%Grp M!;UZc;O0xb/-kԞ>^VJ97/mV- 3 yI='?pLnn=MҾn+DFEWbH~/p& \h\m.tSٟ D? '`IB DKtz"iRТ8$UYHR/1[!qRs~g)p{Ȕ\$dTbI ^m9))Q1d5 9pKCoW +{+H\0Ib/cwKU74Q @&l!h ZmA꘽GjE $F,n@CԦ\q hU,G4$8Ʉx^1n)< X,-YzߡcϰTߐߑJf"LX'"2Hxzx /*^p$NwHDfq@ wFYЪTX']= = & R'K/Rl41Ĉep?/rf41Ĉ+!OMbQMȣ`@1Q0@1(N F(V F(V F(V F(V F(V F(V F(V J h%BIENDB`gurlchecker-0.13.1/ui/link_type_image_ssl.png0000644000175000017500000000170110744343152016161 00000000000000PNG  IHDRabKGD pHYs  tIME 2NIDATxMOu^R(X6_tW 52_ }Qcb  /x7l3&*ƅ.sc[*ٰA[hz;_yHhԟfzeY|> ~L L.wq9`Qjmm4Ss>.N\ g\dߋQ5 *i|Q\:=JG>w{]׉D"=|,JIyn èdmvzD"Ay ma$0*lgo!, !, Ǐ(J,a:.rS#jY1%mAlk?:#,t{;Y[g)ք N̪fZt]U)Rg9wY0ATUew}}PC5@6MAuUf![nlvxM@0 ! AP.#f۴^(ÌP__OWW+k]pqAP,8yXXR^G <ؕɄ؟xTò+&['|ZH'D&ru)|B |u_}1_ri>MܶLvJB|@#.ʶ6ݏٽUKP3?zm-!H, kYY%Tb;,.51ץR{pMϏﯙ.MOL\b!̧JG7wˣgڏePN}#|&۬ ]ZC9zy@[`esdIENDB`gurlchecker-0.13.1/ui/Makefile.am0000644000175000017500000000212510744343152013467 00000000000000 CLEANFILES = *~ MAINTAINERCLEANFILES = Makefile.in gladedir = $(pkgdatadir)/ui dist_glade_DATA = gurlchecker.glade distpixmapdir = $(pkgdatadir)/ui dist_distpixmap_DATA = \ gurlchecker.png \ gurlchecker_icon.png \ link_status_bad.png \ link_status_file_error.png \ link_status_good.png \ link_status_ignored.png \ link_status_mail_bad.png \ link_status_mail_good.png \ link_status_malformed.png \ link_status_nodata.png \ link_status_restricted.png \ link_status_timeout.png \ link_type_css.png \ link_type_css_ssl.png \ link_type_folder.png \ link_type_frame.png \ link_type_frame_ssl.png \ link_type_href_ftp.png \ link_type_href_local.png \ link_type_href.png \ link_type_href_ssl.png \ link_type_image_local.png \ link_type_image.png \ link_type_image_ssl.png \ link_type_mail.png \ link_type_unknown.png \ menu_new_bookmarks_file.png \ menu_new_local_file.png \ menu_new_web_site.png \ menu_protocol_ftp.png \ menu_protocol_https.png \ security_alert.png \ w3c_alert.png \ empty_icon.png gnomepixmapdir = $(datadir)/pixmaps dist_gnomepixmap_DATA = gurlchecker.png gurlchecker-0.13.1/ui/link_status_mail_bad.png0000644000175000017500000000110610744343152016307 00000000000000PNG  IHDR b bKGD pHYs  tIMEWIDATxҽk%yD[m_@kAp" qrppuOpqw h^B )m/m^s9S3j3NץnyxR"@p +ݿu`Y <4I,jy|m;a[|,WMLb.=!4-2L"f4M]ӯ~! zƞ0ܞcy.^wndZvmTbl,,/~l羭Ut.c9]$R̳wUc>ae$X۶lrk8wE*W˕<=&lŗDK `^: Tu(!</&N$ UUa1 M 4Oqzg%~ `Ɓ`IENDB`gurlchecker-0.13.1/ui/link_type_unknown.png0000644000175000017500000000166310744343152015724 00000000000000PNG  IHDR bKGD pHYs  d_tIME  {3@IDATxkU?[&Kuf4kHHUtF^bA  e0DQ[˚id隥ɓyE7su^8~{ч {ɶCEi*z^]0(` 8(55EH7SbV@p8*DJzLeCTzE[˲|Os|4\rzɉD511B J%<GI9ҕ*Y$+` NMe ` eoˉxEYo^ɭZ+*bՆS WƇ߸إcʾABXp89lZ-gbtbt|wRKCg '8ԩHu 8ڥCB@w5AR8j-]z?B@RUt\BUerPU)" Ð"tzx| "t]ar>sZQD>1}4@D8Ns4PDy O|vV \Rtt TUf3zc Hl6k`uX,f^dP,L^<)\^]@%4 TUXU ۶Q@2NbK{x~zK7æc>M sO=cb՟ ;IENDB`gurlchecker-0.13.1/ui/link_status_malformed.png0000644000175000017500000000112110744343152016522 00000000000000PNG  IHDR b bKGD pHYs  tIMExZIDATx;o`}vnmĵj`eP6 ,+ ? LZJTNҸ[L;3?rVSK?\^Ypjtr>2؁Q`"yiG5< xbGFU)"LCb;~6ZdJ9R!]O8A XV*$RIhQx^ żUQg_KRO5΃o`xgk |}bޝ*idBW5le~Ew++R4y,VD0ͦO)#;<j>fOд@BcplO ػl6qu7(HIh?Gj7C}ALQ, eSj.{o=T)$a,c RcOF˰ E ߧ& ?~H*1 IENDB`gurlchecker-0.13.1/ui/link_type_folder.png0000644000175000017500000000060710744343152015475 00000000000000PNG  IHDRabKGD pHYs  ~tIME {IDATxRJAV)C 6y1B;h@`K$ ɝw18-3;;,P,,?Aݶ+5d.$|GhxyÓ"] @+c&S X !jۻv[na0jB YrםL?8@U?&@N9+68#)gVf@h @d(A$T.\K`lwf;SQ77H/M5IENDB`gurlchecker-0.13.1/ui/link_type_css_ssl.png0000644000175000017500000000251410744343152015672 00000000000000PNG  IHDR bKGD pHYs  tIME (g4IDATxڍOl;xfw3Yq`& ! qBTj rH" HZCTQO!V bb'!zڎe;ݙ́xNs'VƗR7 9wՀW٣ԕ+WԾ}0r < h1-[y淀#GXXX  dμ2Y^{wΎ ޤ/r6wmܿ;Lk`XXCࡩQ2c‹e`2 @4q״l?t?q#owßO|LPpٿS~t's7x7E!N2smrVMbԓЁ_y囲7 P S(ݜ$xst>iM0;A%TW4UANwݷ F0ˤ7sP,ٱc2N?"ɖoHR?H߿_jPQF- չL&éSH&ڵKC)pz y_Um:֯_H(TaHH&S*8z(O8|8TH7[`kg?θדp]*Q#>Ԗ~ 000@?^zn]gq;Ns&4 JҬD$#dDry_|EtSwCXvChyޏ{5mz>σ[ۼL % )IJڒCmaus ׬UeQ{(Y֚[vȝt:03VOQ39Zk^|KGdRv(Cae+$֚$Vd] ?4Tefl) OE` 'J(qZMPus-SEOsY-ƤJt/g^yIENDB`gurlchecker-0.13.1/ui/link_status_restricted.png0000644000175000017500000000114010744343152016725 00000000000000PNG  IHDR b bKGD pHYs  tIME7UIIDATx͒kaƟri䮹`sFYJPAE'qQGqpR7qPQ.i\r˽9H׋><ϗߏʭ;R.@`,[{h;ނ>N6F=[}5s h~KK|&-7]`E C:ȣ36ձT+o^$cAf(d*:t \=w0B'X4*|pƟ,7iVonc 9uBew&OhxjZR涄G)! 6 X :@ >pM60@2ev @͒,r\sNP8EA߆J[||jSkm "j%ih9ZS)Oܽ1$MH=Vl@\lkO' |c~ma tPE؊X ; gSqz\6m 1fB,@΋2I؄ZWXH'07/8\zx=_ޯGptq,9JųZNB &=Aӿ䔓Dѵֺ֬]C OR J)Y)%7|_ţ  B#{1F]?}ݟ߽Q7 ë#Fq_w*3~cχt\n9gs-or$Sgڭ5Ng0,NB (B.'H`CƚRf^DÖ+[u@st:ò=ف>6A,gk<*WP NmqMZ%P#"2",s{\sJ8k5W-~ =LޫɔĂ@4Nlgua# )"j H> `KQIqOPfyfZc7|`Y7 `XB_!cb X<ćpfBD\UI1mpƇQ0#tUh;or-, rmuೌqA hq-/3cnD\\{u4,Tw R 8@ "AQ;)=!&7wC&9$!:MT~bkS:> ?S9@ ՇhSc33{> `)|b9W<;e:QP38ʮɑ@W U{ @x0]y&?aB=gY_Zwx ]'vn[%l*d6xu (Uk x9's,~+Pg) mԍٿE^nYv!5އ-1FX%+E"$l"Pp>ɰ7auUx;| 0}t7*'H&w;*2sX!(h ,^Ⱥ3DFi_/@cɹbГf(]G) /#[XmJ$~6I5/G%o-O]BM//)Rڷ`:S! G(9"`A6Lʳ޾l DQ?Z HZϚizk}9*2ű>CSڢp6dd,'ӇUL\\ 0)\ѷ4>dQHC)ak( |F6l fwa( Ekà v,m4DR`'.Zl8}?׀m,H 0ZhRh} 9/>90@SFԤ}_iw̼# l6FɱBn 8#R`lذs#AQ1DBg)P+k*G D*H"T )}U|AsoorH9b 2w^ذ@?Ѓ FZ*(uP?_vac@ɐB;Y&%4( 'gO93ddw` 0:ޒ#vr0 QaDmg`9`0f(mg1TMA:%W%tIp/:uEJOw>O½E#W:Y/zф*R^ !3S]I^-;1!\JEtʚ=dvK,cރc6`*( Ɖv ÌNA(̛Ɲ=℃~׽0?,OݽU͈e켨X08Ú6M\8B[y~tUBV8e/' Ea+;Y$5~s/`9Z \ ѺI.fw3A6CB ۥWt D3''> ;rA"df?*`w$۳~jlq]LUuT8UZ^gZ;m:07byXLalAa <Ѱd=8` XɁR(A匲2|>8u` ( `!豎Xm6ok/| CwPrODD'ii @ R 3i)2DG].R?+ɛ-Ԗ\N [PydKy 'A& ]<(bP@ $e`5 *w@ 'ZXKuؒ? ^VA _Y\p !_9}029Od3c**)5P;lrfݽ1;6b( -$b#XYXHr!F~@6f>.sj$ak!Rinr=hvNY"/)6 /lBLAuQAeh6 `c:V0:R*#@v}P9kC.ac sazqb!FSAP^AYkR< j<P,<2yy,@` EXAq"lT2Oba+7`)h̆Ml0CΆ9hp-A4@&}2R$Ҧ_ed񶓨S%qQ0{m(No| k$(@/+/ O\u~a'v0P9Up3L:f0H4X^A,3yA8CMToCEsd @ XZn3s)gwTӑs%uc%@amx#*u΢qԽ+z'#"A]#v@Pt.Ǎ&o nؘM-<$<յۤwDC'>(^m'uyYb[ݛ;v@|b+a UuĀ͎ 0>i܌RYquA'!Jkm+AmlDʱrI;H(,&LMmjz &z<~i@ u΀ngvnP(ѹ_pE&6֦Ȉ RT뱈Qo/vp@ @srH#QA`X?SP"t[V0d30; ՙyܰ/luz@ϥ &ˆS[n0B̿\ځ /G֤5k ޒcv.ʢ`U XR I6Z%HdY\~ ҎRA '0 }Gk cQ׋Y Ebg23 ZXlt% (|鋏WJ>`px_imPoMeߢaD5)ɭ{WؗGsw9Ș=bn} pi/)0 ').IXOzTvpU~O{ A10#"Wkv@]B$ͨ072K;Za(W80 z$P=_EUmp/`[];|iZn󀭨lP; b3Hd 0F@nUVPOL!9AW.iD,\xwqȪ#T$q0]PÞL1 0CZ CAcPk|ԝEņdJFt*xl'32Mlǔ!Kw+8)2B] J7t5Ձ%Py `ʃ`,%5cA lTaCe36=HEMAX%qXv]@e@P10k\f6@=ԗ~jaM )ݫ[aQ`/$-0M$;g)5=g*P9;T&rgfuu«=NFكd410 %I<3Lst0RDl^;rA{: |&~AD` HGYB5: &Ɖ1({V@%ry<5|x+>QNoValA !EGs{^3ЃAo bޙWA4eFT\\= ᔷϵwI[bB.情7'XI C.V ,+//gXz5k@MiPU9<>Gh X~6k AY4[jHF`YV"o?wж(6BF87ģ I 0ul룀hvX"F#E*О8׺-Y߹q2NF .Pwed`ljZbҠU;5bUX$ZCxbARR}<y PA ȂE40h/`yX PR:#o x 0%!w*`lv(@@=2P/q-@Y<:(bTV@ Q *'_=tr ,º|# 1":U蠖(Purh9,#3W5@O@Tn(`^ >fI|D:l :X,;k`PP AP렂 @0RD Ϡ >a xS )fP@1`h([jyh|8l (>(a%=h|A5(:I@'( @j0j/) @!#b@Ep8~7hŏEW nRR 5A'Og@@Nxb*mtCթ^esߡ: [IENDB`gurlchecker-0.13.1/ui/link_type_href_ssl.png0000644000175000017500000000246210744343152016030 00000000000000PNG  IHDR bKGD pHYs  tIME qIDATxڍ[lufvvvgg;]H܅KMAEFFM1oAMLHLL "Q/r LK[h+vwvfw?>تx9$?Q1֬YSڱGA ?j6c)̤;;Ģ:9U7("=ŏl _gc@$(*qĹ }{9~ơ9 n:~ AH>[ݴh( @" % 1tޡ<7p˭144ʕ+Tk" 8]NY7Mk6&l٢)LL*ղOPpw\.G:fϞ=$I8uCa:{^Ef6.lll.ZMH(% Qg׮]W֮] a3p3-V4;rW%LsɻnvQ_槳xgرc'/qF}f;U{>Œs( v-ua$f/i;t+=w[߳kꛅ&IN [<8O~ҥ雰Q3n t=PTuY6L,Ovu-Fp~ xv _8b7AIDA"]oc>tcU٪]XwLyvuC0? ÈHXb&AJJ))0Jp7Ͽ)kxDUр@10 BaصD4U0d292ps^t{YʊTU-2ŢKMM4j,LB! /xƕoH4ޥk(nsi t]7JDBrZr&*;Tؑd216:p I3z芢[BJY(  JD8lEQm3Ngj6#d>O_uK_M a4-b1{TVU,ˆyxW*q~H@4IENDB`gurlchecker-0.13.1/ui/menu_new_local_file.png0000644000175000017500000000066410744343152016135 00000000000000PNG  IHDRa pHYs  ~gAMA|Q cHRMz%u0`:o_F*IDATxb?"0@1@ ?߿~>|߿X&A0|سgɓ'?c43Y`jjk׮ @4.@ p "d0 Ă- X)н@^;AW pV@aW, p0Jڌn@Q7ѣ NO>QWa|)&2;p ̵~5 ZIENDB`gurlchecker-0.13.1/ui/link_type_css.png0000644000175000017500000000231610744343152015011 00000000000000PNG  IHDR bKGD pHYs  tIME %6hj>[IDATxڥoTe9߹93efֶPJM@Ddgƍ.\jti 5B()l \ΜЕo={-e;J5$7d6QsHGq<$}pS)-?_sͅT@ 0t`Ҟ/`Iݽe鬬oIÚWVf/|i=` hJrJ7whmiӟc#ުQ{\*lSUW~^?Pʾ󁦕[k[^{K/p(:4;lj^ٱ+ӷ [*#@i[?ྺB XS9Nމ ^n=yP,@4 &N-S FU; tw`ېHUe^G2g|1TjJX9r$3e~>|߿X&A0|سgɓ'?c43Y`jjk׮ @4.@ p "d0 /m;v3x p9b4Ig1X92Y;C/jk ݙ W00 6oΠe 'ofK{J&&&+bBŸ?dfg8r&Ob^fcfdfs M*o޽ +p]%2¥ b @D{kse[TU=x'!~}Zy rګW0bd`wO/k^|c狛 o\jJ7/_D c#G0=vw K.p!`zǪ<}!!!*P\ l"3 @Lg;3IENDB`gurlchecker-0.13.1/ui/link_status_mail_good.png0000644000175000017500000000111410744343152016510 00000000000000PNG  IHDR b bKGD pHYs  tIME:ٞBIDATx͒kq?KLz^c66V$@ŭ:8Qpps7uR"(ERIj.wIrG3|<'cJ酓dY `__T_h  E.]sw}8.Oa[OUᾩU` #AȄCu]lˢy=2_V1> nʲi=vxr*NfZ%3斦o)QƔ˓[/[uj B.. k.;xCnl=,pEiR,e` p0 B`ictjK|P߳UDo$Rz,3DZ@sOQ4| k,@`] ݤݶu#qWa'A;z6ɩHR(ĕ"~+G$},¥@Q¿B|Z4>o IENDB`gurlchecker-0.13.1/ui/link_status_bad.png0000644000175000017500000000110610744343152015305 00000000000000PNG  IHDR b bKGD pHYs  tIMEWIDATxҽk%yD[m_@kAp" qrppuOpqw h^B )m/m^s9S3j3NץnyxR"@p +ݿu`Y <4I,jy|m;a[|,WMLb.=!4-2L"f4M]ӯ~! zƞ0ܞcy.^wndZvmTbl,,/~l羭Ut.c9]$R̳wUc>ae$X۶lrk8wE*W˕<=&lŗDK `^: Tu(!</&N$ UUa1 M 4Oqzg%~ `Ɓ`IENDB`gurlchecker-0.13.1/ui/link_status_timeout.png0000644000175000017500000000113310744343152016245 00000000000000PNG  IHDR b bKGD pHYs  tIME8 ;iUIDATxһkSq}$7ɽ7ZC*U!Kq*n.nuG7'tvB*"*AGss7$k3Ás^0(;A4؎Fz߫׳>?@廉2Ð=]t{St覎0Zd@Qu|ШT#%lHlD3{;\ k 7ӋhNbN~MeVJt-e`n%59[zyUU7޾V4>!`+qc]^[)e9Ywvnc6Z: J((cHSxmmU?j V'KocL?$Oͪ$q2PJd|xS{Kb*N7eNB&f FncIENDB`gurlchecker-0.13.1/THANKS0000644000175000017500000000564011524254614011737 00000000000000I would like to thank this people for their support: Takeshi Aihana - japanese translation. Emal Alekozai - feature requests. Benny Amorsen - bug reports. Jens Ansorg - bug reports, feature requests. James Antill - bug reports, feature requests, patches. Kevin Breit - bug reports. Cyril Brulebois - bug reports, feature requests, Debian repository. Sean E. Covel - feature requests. John Coppens - bug reports, feature requests. Joe Dalton - danish translation. Lionel Draghi - feature requests. Alexandre Fayolle - bug reports. Valery Febvre - bug reports, feature requests. Stefan Fent - x86_64 port, x86_64 port patches. Alessio Frusciante - bug reports. Ashok Gautham - bug reports. Eric Gerbier - bug reports. Imre Gergely - bug reports. Mike Hearn - bug reports. Jan Henrik Helmers - graphic arts. Alexander Hunziker - german translation, bug reports. Dan Hrabarchuk - bug reports. Florent Jugla - esperanto translation, feature requests. Tobias Kieslich - bug reports. Emmanuel Lacour - help with Debian packaging. Daniel Leidert - bug reports, feature requests, patches. Sbastien Lepers - bug reports. Ian McDonald - bug reports. Marshall Lake - bug reports. Andreas Liebe - Solaris patch. Bjrn Lindeijer - feature requests, bug reports. Stephane Loeuillet - feature requests, co-developer. Erik Ljungstrom - bug reports. Lesley Lutomski - bug reports. Koop Mast - FreeBSD port, FreeBSD packages, FreeBSD port patches. Osmo Maatta - Bug reports. Michael Parienti - bug reports, feature requests. Mickey - feature requests, but reports. Christopher Parker - bug reports, patches. Daniel Pecos - debian packages, spanish translation. Frederic Peters - bug reports, feature requests, help with Debian packaging. Mark Pors - bug reports. Gunner Poulsen - danish translation, feature requests, bug reports. Benjamin Renard - feature requests. Filippo Rusconi - bug reports, feature requests. Andrea Sciucca - bug reports, Slackware packaging. Kern Sibbald - bug reports. Jacob Steenhagen - bug reports. Ubuntu Team - bug reports. Angelo Theodorou - italian translation, feature requests. Tinh Truong - feature requests. Georg Verweyen - bug reports. Stanislav Valasek - slovak translation, bug report. Luis Villa - bug reports. Peter Volkov - bug reports. Norman Walsh - bug reports, feature requests. Bob White - bug reports, feature requests. Dag Wieers - bug reports, feature requests, rpm package. Chris Wilson - bug reports. I would also like to thank administrators of the following web sites who kindly "allow" me to check their site during gURLChecker development periods: - http://www.gnome.org - http://www.ximian.com - http://www.perl.com - http://www.easter-eggs.com - http://www.easter-eggs.org - http://www.lisa.org - http://www.jcoppens.com - http://dag.wieers.com - http://norman.walsh.name - http://www.bd-4.org - http://www.net4war.com - http://www.microsoft.fr :-) Last but not least I would like to thank Richard Stallman for the GNU Project. gurlchecker-0.13.1/gurlchecker.10000644000175000017500000000662411353721377013414 00000000000000'\" t .\" Title: gurlchecker .\" Author: Daniel Pecos Martinez .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: Apr 8, 2009 .\" Manual: http://labs.libre-entreprise.org/docman/view.php/7/13/FAQ.txt .\" Source: http://gurlchecker.labs.libre-entreprise.org @VERSION@ .\" Language: English .\" .TH "GURLCHECKER" "1" "Apr 8, 2009" "http://gurlchecker\&.labs\&.li" "http://labs\&.libre\-entrepris" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" gurlchecker \- A graphical web link checker that works on a whole site, a single local page or a browser bookmarks file\&. .SH "SYNOPSIS" .HP \w'\fBgurlchecker\fR\ 'u \fBgurlchecker\fR [\fB\-h|\-\-help\fR] [\fB\-v|\-\-version\fR] [\fB\-u|\-\-http\-user\fR\ \fIuser\fR] [\fB\-p|\-\-http\-passwd\fR\ \fIpassword\fR] [\fB\-A|\-\-no\-urls\-args\fR] [\fIURL\fR] .SH "DESCRIPTION" .PP This manual page documents the \fBgurlchecker\fR command\&. .PP \fBgurlchecker\fR is a graphical web link checker\&. It searches URLs in a whole site, a single local page or a browser bookmarks page, checking them, one by one, in order to know their validity\&. Furthermore, it can manage entire projects\&. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`\-\*(Aq)\&. A summary of options is included below\&. .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Show summary of options\&. .RE .PP \fB\-v\fR, \fB\-\-version\fR .RS 4 Show version of program\&. .RE .PP \fB\-u\fR, \fB\-\-http\-user\fR .RS 4 User name for HTTP Basic Authentication\&. .RE .PP \fB\-p\fR, \fB\-\-http\-passwd\fR .RS 4 Password for HTTP Basic Authentication\&. .RE .PP \fB\-A\fR, \fB\-\-no\-urls\-args\fR .RS 4 Ignore URLs arguments\&. .sp With this option gurlchecker will systematically remove arguments on URLs\&. It is useful to avoid nasty infinite loops when arguments are randomly generated, for example\&. .RE .SH "AUTHORS" .PP This manual page was written by Daniel Pecos Martinez and Emmanuel Saracco for the Debian system (but may be used by others)\&. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1\&.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front\-Cover Texts and no Back\-Cover Texts\&. .SH "AUTHORS" .PP \fBDaniel Pecos Martinez\fR .RS 4 Author. .RE .PP \fBEmmanuel Saracco\fR .RS 4 Author. .RE .SH "COPYRIGHT" .br Copyright \(co 2003-2005 Daniel Pecos Martinez, Emmanuel Saracco .br gurlchecker-0.13.1/TODO0000644000175000017500000000016410744343152011507 00000000000000TODO list for gURLChecker can be found at http://labs.libre-entreprise.org/tracker/?atid=112&group_id=7&func=browse gurlchecker-0.13.1/config.sub0000755000175000017500000010344511530645265013014 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. timestamp='2010-01-22' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile-* | tilegx-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; # This must be matched before tile*. tilegx*) basic_machine=tilegx-unknown os=-linux-gnu ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gurlchecker-0.13.1/AUTHORS0000644000175000017500000000011410744343152012062 00000000000000Emmanuel Saracco , main developer gurlchecker-0.13.1/configure.in0000644000175000017500000003021211527720104013321 00000000000000dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.54) AC_INIT(configure.in) AM_INIT_AUTOMAKE(gurlchecker, 0.13.1) AM_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE AC_ISC_POSIX AC_PROG_CC AC_STDC_HEADERS AM_DISABLE_STATIC AM_PROG_LIBTOOL AC_CHECK_HEADER([resolv.h],,) AM_PATH_GLIB_2_0 GNOME_COMPILE_WARNINGS dnl i18n stuff and gettext stuff AC_PROG_INTLTOOL([0.30]) PKG_PROG_PKG_CONFIG GETTEXT_PACKAGE=gurlchecker AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Define gettext package]) ALL_LINGUAS="da de eo es fr it ja sk" AM_GLIB_GNU_GETTEXT pkg_modules="gnutls > 1.0 gtk+-2.0 >= 2.6 libgnomeui-2.0 libglade-2.0 libxml-2.0 > 2.6 gnet-2.0" AC_MSG_NOTICE([*****************************************]) ################################################## # gtk-doc ################################################## AC_ARG_ENABLE([html-dir], AC_HELP_STRING( [--with-html-dir=@<:@=PATH@:>@], [use PATH to install docs @<:@default=${datadir}/gtk-doc/html@:>@] ), [ case "x$enableval" in x | xno | xyes) HTML_DIR='${datadir}/gtk-doc/html' ;; *) HTML_DIR="$enableval" ;; esac ], [HTML_DIR='${datadir}/gtk-doc/html'] ) AC_SUBST(HTML_DIR) PKG_CHECK_MODULES(GTK_DOC, gtk-doc > 1.1, HAVE_GTK_DOC="yes", HAVE_GTK_DOC="no") AM_CONDITIONAL(HAVE_GTK_DOC, test "x$HAVE_GTK_DOC" = "xyes") dnl Let people disable the gtk-doc stuff. AC_ARG_ENABLE([gtk-doc], AC_HELP_STRING( [--enable-gtk-doc], [use gtk-doc to build documentation @<:@default=no@:>@] ), [enable_gtk_doc="$enableval"], [enable_gtk_doc=auto] ) if test x$enable_gtk_doc = xyes -a x$HAVE_GTK_DOC != xyes; then echo "Please install the gtk-doc package." exit -1 fi if test x$enable_gtk_doc = xauto -o x$enable_gtk_doc = xyes ; then enable_gtk_doc=$HAVE_GTK_DOC fi AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) ################################################ # json-glib ################################################ JSON_LIBS='' JSON_FLAGS='' JSON_CFLAGS='' AC_MSG_CHECKING([whether to use JSON library (Google Chrome bookmarks management)]) if test "x$enable_json" != "xno"; then AC_ARG_WITH( [json], AC_HELP_STRING( [--with-json@<:@=DIR@:>@], [use JSON library located in directory DIR (if supplied) for Firefox bookmarks management @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_json=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_json=yes if test -d "$withval"; then want_json_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for json-glib does not exist.]) want_json=no fi ], [want_json=yes] ) else AC_MSG_RESULT([not requested]) want_json=no fi if test "x$want_json" != "xno"; then AC_MSG_RESULT([requested]) PKG_CHECK_MODULES([JSON], [json-glib-1.0 >= 0.8], [ want_json=yes JSON_FLAGS="-DENABLE_JSON $JSON_CFLAGS" LDFLAGS="$LDFLAGS $want_json_path" ], [ want_json=no AC_MSG_RESULT([libjson-glib-1.0 not found]) AC_MSG_WARN([You requested libjson-glib support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libjson-glib support. gurlchecker will not be able to manage Firefox bookmarks...]) fi AC_SUBST(JSON_LIBS) AC_SUBST(JSON_FLAGS) ################################################ # libsqlite3 ################################################ SQLITE3_LIBS='' SQLITE3_FLAGS='' SQLITE3_CFLAGS='' AC_MSG_CHECKING([whether to use SQLITE3 library (Firefox bookmarks management)]) if test "x$enable_sqlite3" != "xno"; then AC_ARG_WITH( [sqlite3], AC_HELP_STRING( [--with-sqlite3@<:@=DIR@:>@], [use SQLITE3 library located in directory DIR (if supplied) for Firefox bookmarks management @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_sqlite3=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_sqlite3=yes if test -d "$withval"; then want_sqlite3_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for libsqlite3 does not exist.]) want_sqlite3=no fi ], [want_sqlite3=yes] ) else AC_MSG_RESULT([not requested]) want_sqlite3=no fi if test "x$want_sqlite3" != "xno"; then AC_MSG_RESULT([requested]) PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6], [ want_sqlite3=yes SQLITE3_FLAGS="-DENABLE_SQLITE3 $SQLITE3_CFLAGS" LDFLAGS="$LDFLAGS $want_sqlite3_path" ], [ want_sqlite3=no AC_MSG_RESULT([libsqlite3 not found]) AC_MSG_WARN([You requested libsqlite3 support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libsqlite3 support. gurlchecker will not be able to manage Firefox bookmarks...]) fi AC_SUBST(SQLITE3_LIBS) AC_SUBST(SQLITE3_FLAGS) ################################################ # libcroco ################################################ CROCO_LIBS='' CROCO_FLAGS='' CROCO_CFLAGS='' AC_MSG_CHECKING([whether to use CROCO library (CSS2 w3c validation)]) if test "x$enable_croco" != "xno"; then AC_ARG_WITH( [croco], AC_HELP_STRING( [--with-croco@<:@=DIR@:>@], [use CROCO library located in directory DIR (if supplied) for CSS2 validation @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_croco=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_croco=yes if test -d "$withval"; then want_croco_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for libcroco does not exist.]) want_croco=no fi ], [want_croco=yes] ) else AC_MSG_RESULT([not requested]) want_croco=no fi if test "x$want_croco" != "xno"; then AC_MSG_RESULT([requested]) PKG_CHECK_MODULES([CROCO], [libcroco-0.6 >= 0.6.0], [ want_croco=yes CROCO_FLAGS="-DENABLE_CROCO $CROCO_CFLAGS" LDFLAGS="$LDFLAGS $want_croco_path" ], [ want_croco=no AC_MSG_RESULT([libcroco not found]) AC_MSG_WARN([You requested libcroco support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libcroco support. gurlchecker will not be able to do CSS validation...]) fi AC_SUBST(CROCO_LIBS) AC_SUBST(CROCO_FLAGS) ################################################ # libtidy ################################################ TIDY_LIBS='' TIDY_FLAGS='' AC_MSG_CHECKING([whether to use TIDY library (HTML w3c validation)]) if test "x$enable_tidy" != "xno"; then AC_ARG_WITH( [tidy], AC_HELP_STRING( [--with-tidy@<:@=DIR@:>@], [use TIDY library located in directory DIR (if supplied) for HTML w3c validation @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_tidy=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_tidy=yes if test -d "$withval"; then want_tidy_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for libtidy does not exist.]) want_tidy=no fi ], [want_tidy=yes] ) else AC_MSG_RESULT([not requested]) want_tidy=no fi if test "x$want_tidy" != "xno"; then AC_MSG_RESULT([requested]) AC_CHECK_LIB( [tidy], [tidyCreate], [ AC_CHECK_HEADERS( [tidy.h tidy/tidy.h], [ want_tidy=yes TIDY_FLAGS="$TIDY_FLAGS -DHAVE_TIDY_H_IN_SUBDIR -DENABLE_TIDY" TIDY_LIBS="-ltidy" LDFLAGS="$LDFLAGS $want_tidy_path" ], [want_tidy=no] ) ], [ want_tidy=no AC_MSG_WARN([You requested libtidy support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libtidy support. gurlchecker will not be able to do HTML validation...]) fi AC_SUBST(TIDY_LIBS) AC_SUBST(TIDY_FLAGS) ################################################ # libclamav ################################################ CLAMAV_LIBS='' CLAMAV_FLAGS='' AC_MSG_CHECKING([whether to use CLAMAV library (virii scan)]) if test "x$enable_clamav" != "xno"; then AC_ARG_WITH( [clamav], AC_HELP_STRING( [--with-clamav@<:@=DIR@:>@], [use CLAMAV library located in directory DIR (if supplied) for virii scan @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_clamav=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_clamav=yes if test -d "$withval"; then want_clamav_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for libtidy does not exist.]) want_clamav=no fi ], [want_clamav=yes] ) else AC_MSG_RESULT([not requested]) want_clamav=no fi if test "x$want_clamav" != "xno"; then AC_MSG_RESULT([requested]) AC_CHECK_LIB( [clamav], [cl_init], [ AC_CHECK_HEADER( [clamav.h], [ want_clamav=yes CLAMAV_FLAGS="$CLAMAV_FLAGS -DENABLE_CLAMAV" CLAMAV_LIBS="-lclamav" LDFLAGS="$LDFLAGS $want_clamav_path" ], [want_clamav=no] ) ], [ want_clamav=no AC_MSG_WARN([You requested libclamav support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libclamav support. gurlchecker will not be able to do virii scan...]) fi AC_SUBST(CLAMAV_LIBS) AC_SUBST(CLAMAV_FLAGS) ################################################ # SSL stuff ################################################ GNUTLS_LIBS='' GNUTLS_FLAGS='' AC_MSG_CHECKING([whether to use GNUTLS library (HTTPS check)]) if test "x$enable_gnutls" != "xno"; then AC_ARG_WITH( [gnutls], AC_HELP_STRING( [--with-gnutls@<:@=DIR@:>@], [use GNUTLS library located in directory DIR (if supplied) for HTTPS check @<:@default=yes (if present)@:>@] ), [ if test "x$withval" = "xno"; then AC_MSG_RESULT([not requested]) want_gnutls=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_gnutls=yes if test -d "$withval"; then want_gnutls_path=$withval fi else AC_MSG_RESULT([no]) AC_MSG_WARN([The specified path for libgnutls does not exist.]) want_gnutls=no fi ], [want_gnutls=yes] ) else AC_MSG_RESULT([not requested]) want_gnutls=no fi if test "x$want_gnutls" != "xno"; then AC_MSG_RESULT([requested]) AC_CHECK_LIB( [gnutls], [gnutls_global_init], [ AC_CHECK_HEADERS( [gnutls.h gnutls/gnutls.h], [ want_gnutls=yes GNUTLS_FLAGS="$GNUTLS_FLAGS -DHAVE_GNUTLS_H_IN_SUBDIR -DENABLE_GNUTLS" GNUTLS_LIBS="-lgnutls" LDFLAGS="$LDFLAGS $want_gnutls_path" ], [want_gnutls=no] ) ], [ want_gnutls=no AC_MSG_WARN([You requested libgnutls support, but it doesn't seem to be installed.]) ] ) else AC_MSG_WARN([You are building without libgnutls support. gurlchecker will not be able to do HTTPS check...]) fi AC_SUBST(GNUTLS_LIBS) AC_SUBST(GNUTLS_FLAGS) echo "*****************************************" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_OUTPUT([ Makefile doc/Makefile po/Makefile.in ui/Makefile src/Makefile stylesheets/Makefile ]) echo " ==================================================================== gURLChecker $VERSION, graphical links checker for GNOME ==================================================================== prefix : ${prefix} source code location : ${srcdir} data location : ${datadir} compiler : ${CC} cflags : ${CFLAGS} maintainer mode : ${USE_MAINTAINER_MODE} Google Chrome bookmarks (libjson-glib) : ${want_json} Firefox bookmarks (libsqlite3) : ${want_sqlite3} SSL layer (libgnutls) : ${want_gnutls} HTML validation (libtidy) : ${want_tidy} CSS2 validation (libcroco) : ${want_croco} Virii scan (libclamav) : ${want_clamav} Generate GTK doc (gtkdoc) : ${enable_gtk_doc} " gurlchecker-0.13.1/src/0000755000175000017500000000000011530645400011660 500000000000000gurlchecker-0.13.1/src/uccroco.h0000644000175000017500000000235711336007111013410 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_CROCO #ifndef H_UC_CROCO #define H_UC_CROCO #include "general.h" typedef struct _UCCroco UCCroco; struct _UCCroco { CRDocHandler *css_handler; gboolean is_valid; gboolean log_error; CRParser *parser; GString *def; GString *error_buffer; guint error_count; }; UCCroco *uc_uccroco_new (void); gboolean uc_uccroco_validate (UCCroco * croco, const gchar * path); void uc_uccroco_free (UCCroco ** croco); #endif #endif gurlchecker-0.13.1/src/getopt.h0000644000175000017500000001346011275575426013277 00000000000000/* Declarations for getopt. Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETOPT_H #ifndef __need_getopt # define _GETOPT_H 1 #endif #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; #ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { # if defined __STDC__ && __STDC__ const char *name; # else char *name; # endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ # define no_argument 0 # define required_argument 1 # define optional_argument 2 #endif /* need getopt */ /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, `optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in `optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU `getopt'. The argument `--' causes premature termination of argument scanning, explicitly telling `getopt' that there are no more options. If OPTS begins with `--', then non-option arguments are treated as arguments to the option '\0'. This behavior is specific to the GNU `getopt'. */ #if defined __STDC__ && __STDC__ # ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int __argc, char *const *__argv, const char *__shortopts); # else /* not __GNU_LIBRARY__ */ extern int getopt (); # endif /* __GNU_LIBRARY__ */ # ifndef __need_getopt extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind); extern int getopt_long_only (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only); # endif #else /* not __STDC__ */ extern int getopt (); # ifndef __need_getopt extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); # endif #endif /* __STDC__ */ #ifdef __cplusplus } #endif /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt #endif /* getopt.h */ gurlchecker-0.13.1/src/uctidy.h0000644000175000017500000000215211336007122013247 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_TIDY #ifndef H_UC_TIDY #define H_UC_TIDY #include "general.h" typedef struct _UCTidy UCTidy; struct _UCTidy { TidyBuffer errbuf; TidyDoc tdoc; }; UCTidy *uc_uctidy_new (void); gint uc_uctidy_validate (UCTidy * tidy, const gchar * buffer); void uc_uctidy_free (UCTidy ** tidy); #endif #endif gurlchecker-0.13.1/src/uctidy.c0000644000175000017500000000365611336007075013263 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_TIDY #include "project.h" #include "uctidy.h" #include "utils.h" UCTidy * uc_uctidy_new (void) { UCTidy *tidy = NULL; tidy = g_new0 (UCTidy, 1); memset (&tidy->errbuf, 0, sizeof (tidy->errbuf)); if (!(tidy->tdoc = tidyCreate ())) { uc_uctidy_free (&tidy); return NULL; } tidyOptSetBool (tidy->tdoc, TidyShowWarnings, yes); tidySetCharEncoding (tidy->tdoc, "utf8"); return tidy; } gint uc_uctidy_validate (UCTidy * tidy, const gchar * buffer) { gint ret = -1; gchar *tmp = NULL; tmp = uc_utils_to_utf8 (buffer); ret = tidySetErrorBuffer (tidy->tdoc, &tidy->errbuf); if (ret >= 0) ret = tidyParseString (tidy->tdoc, tmp); if (ret >= 0) ret = tidyRunDiagnostics (tidy->tdoc); /* If user want to consider that even with warnings, page is valid */ if (ret == 1 && !strcmp (uc_project_get_w3c_html_level (), "errors")) ret = 0; g_free (tmp), tmp = NULL; return ret; } void uc_uctidy_free (UCTidy ** tidy) { if (!tidy) return; tidyBufFree (&(*tidy)->errbuf); if ((*tidy)->tdoc) tidyRelease ((*tidy)->tdoc); g_free (*tidy), *tidy = NULL; } #endif gurlchecker-0.13.1/src/cache.h0000644000175000017500000000211711275575426013035 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_CACHE #define H_UC_CACHE #include "general.h" void uc_cache_change_id (const guint32 old, const guint32 new); gchar *uc_cache_get_source (const guint32 id, gsize * length); void uc_cache_append_source (const guint32 id, gchar * src, const gsize length); #endif gurlchecker-0.13.1/src/html_parser.h0000644000175000017500000000211211327747210014273 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_HTML_PARSER #define H_UC_HTML_PARSER #include "general.h" void uc_html_parser_node_free (UCHTMLTag **tag); GList *uc_html_parser_get_tags (gchar * buffer_orig); UCHTMLTag *uc_html_parser_node_new (void); GList *uc_css_parser_get_tags (gchar * buffer_orig); #endif gurlchecker-0.13.1/src/lists.c0000644000175000017500000003632011345765245013124 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "url.h" #include "html_parser.h" #include "project.h" #include "lists.h" /* * struct used for the uc_lists_already_checked_links_list * list */ typedef struct { gchar *url; UCLinkProperties *parent; } UCAlreadyChecked; /* list of already checked urls */ static GList *uc_lists_already_checked_links_list = NULL; /* list of already checked urls */ static GList *uc_lists_checked_links_list = NULL; /* list of links to reinject in the node's childs before * a update */ static GList *uc_lists_refresh_preserved_links_list = NULL; static void uc_lists_checked_links_free_real (GList **list); static UCAlreadyChecked *uc_lists_already_checked_links_node_new ( const gchar *url, gpointer ac_p); static UCLinkProperties *uc_lists_checked_links_lookup_by_uid_real ( GList *list, const guint uid); static void uc_lists_html_tags_free (GList ** list); void uc_lists_refresh_preserved_links_reset (void) { g_list_free (uc_lists_refresh_preserved_links_list), uc_lists_refresh_preserved_links_list = NULL; } void uc_lists_refresh_preserved_links_append (UCLinkProperties * prop) { uc_lists_refresh_preserved_links_list = g_list_append (uc_lists_refresh_preserved_links_list, prop); } GList * uc_lists_refresh_preserved_links_restore (GList * src) { return g_list_concat (src, g_list_copy (uc_lists_refresh_preserved_links_list)); } /* * free a html tags list node */ void uc_lists_html_tags_node_free (GList **list, UCHTMLTag **tag) { *list = g_list_remove (*list, (gpointer) *tag); uc_html_parser_node_free (tag); } /* * free a html tags list */ static void uc_lists_html_tags_free (GList ** list) { GList *item = NULL; g_return_if_fail (*list != NULL); item = g_list_first (*list); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; item = g_list_next (item); uc_lists_html_tags_node_free (list, &tag); } g_list_free (*list), *list = NULL; } /* * append a item to the uc_lists_already_checked_links_list * list */ gboolean uc_lists_already_checked_links_append (const gchar * url, gpointer ac_p) { UCAlreadyChecked *node = NULL; /* do not insert it twice */ if (uc_lists_already_checked_links_lookup (url, TRUE) != NULL) return FALSE; node = uc_lists_already_checked_links_node_new (url, ac_p); uc_lists_already_checked_links_list = g_list_append (uc_lists_already_checked_links_list, node); return TRUE; } /* * return TRUE if the list of checked * links is empty */ guint uc_lists_checked_links_is_empty (void) { return (g_list_length (uc_lists_checked_links_list) == 0); } /* * public wrapper to freeing the uc_lists_checked_links_list * list */ void uc_lists_checked_links_free (void) { uc_lists_checked_links_free_real (&uc_lists_checked_links_list); } /* * free a UCLinkProperties node */ void uc_lists_checked_links_node_free (GList ** list, UCLinkProperties ** prop) { if (*prop == NULL) return; g_free ((*prop)->treeview_path), (*prop)->treeview_path = NULL; if ((*prop)->link_icon != NULL) g_object_unref ((*prop)->link_icon), (*prop)->link_icon = NULL; g_free ((*prop)->user_action), (*prop)->user_action = NULL; g_free ((*prop)->link_value), (*prop)->link_value = NULL; g_free ((*prop)->label), (*prop)->label = NULL; g_free ((*prop)->url), (*prop)->url = NULL; g_free ((*prop)->normalized_url), (*prop)->normalized_url = NULL; g_free ((*prop)->protocol), (*prop)->protocol = NULL; g_free ((*prop)->ip_addr), (*prop)->ip_addr = NULL; g_free ((*prop)->h_name), (*prop)->h_name = NULL; g_free ((*prop)->port), (*prop)->port = NULL; g_free ((*prop)->path), (*prop)->path = NULL; g_free ((*prop)->domain), (*prop)->domain = NULL; g_free ((*prop)->args), (*prop)->args = NULL; g_free ((*prop)->current_path), (*prop)->current_path = NULL; g_free ((*prop)->virname), (*prop)->virname = NULL; if ((*prop)->header != NULL) g_hash_table_destroy ((*prop)->header), (*prop)->header = NULL; if ((*prop)->similar_links_parents != NULL) { g_list_foreach ((*prop)->similar_links_parents, (GFunc) g_free, NULL); g_list_free ((*prop)->similar_links_parents), (*prop)->similar_links_parents = NULL; } if ((*prop)->bad_extensions != NULL) { g_list_foreach ((*prop)->bad_extensions, (GFunc) g_free, NULL); g_list_free ((*prop)->bad_extensions), (*prop)->bad_extensions = NULL; } /* (*prop)->all_links (ptr on (*prop)->tags items) */ g_list_free ((*prop)->all_links), (*prop)->all_links = NULL; /* (*prop)->emails (ptr on (*prop)->tags items) */ g_list_free ((*prop)->emails), (*prop)->emails = NULL; /* (*prop)->metas ((ptr on (*prop)->tags items) */ g_list_free ((*prop)->metas), (*prop)->metas = NULL; if ((*prop)->tags != NULL) uc_lists_html_tags_free (&(*prop)->tags); if ((*prop)->childs != NULL) uc_lists_checked_links_free_real (&(*prop)->childs); if (list != NULL) *list = g_list_remove (*list, (gpointer) *prop); g_free (*prop), *prop = NULL; } /* * free all the allocated objects of the * url properties list */ static void uc_lists_checked_links_free_real (GList **list) { GList *item = NULL; if (*list == NULL) return; item = g_list_first (*list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); uc_lists_checked_links_node_free (list, &prop); } g_list_free (*list), *list = NULL; } /* * TRUE if the given url already in * the checked urls list */ gboolean uc_lists_checked_links_exist (const gchar * url) { return (uc_lists_checked_links_lookup (url) != NULL); } /* * return a pointer on the found item */ gpointer uc_lists_checked_links_lookup (const gchar * url) { return uc_lists_already_checked_links_lookup (url, FALSE); } /* * TRUE if the given url already in * the checked urls list */ gboolean uc_lists_already_checked_links_exist (gchar * url) { return (uc_lists_already_checked_links_lookup (url, TRUE) != NULL); } /* * return a pointer on the found item */ gpointer uc_lists_already_checked_links_lookup (const gchar * url, const gboolean return_node) { GList *item = NULL; gchar *new_url = NULL; gpointer ret = NULL; new_url = uc_url_add_slash (url); item = g_list_first (uc_lists_already_checked_links_list); while (item != NULL && ret == NULL) { UCAlreadyChecked *ac = (UCAlreadyChecked *) item->data; if (!g_ascii_strcasecmp ((gchar *) ac->url, new_url)) ret = (return_node) ? (gpointer) ac : (gpointer) ac->parent; item = g_list_next (item); } g_free (new_url), new_url = NULL; return ret; } GList * uc_lists_links_first_minus_second (GList * first, GList * second) { GList *item = NULL; GList *item1 = NULL; GList *res = NULL; item = g_list_first (first); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; gboolean found = FALSE; item1 = g_list_first (second); while (item1 != NULL && !found) { UCLinkProperties *prop1 = (UCLinkProperties *) item1->data; item1 = g_list_next (item1); if (!g_ascii_strcasecmp (prop->url, prop1->url)) found = TRUE; } if (!found) res = g_list_append (res, prop); item = g_list_next (item); } return res; } void uc_lists_already_checked_links_remove (const gchar * url) { UCAlreadyChecked *node = NULL; node = (UCAlreadyChecked *) uc_lists_already_checked_links_lookup (url, TRUE); if (node != NULL) { g_free (node->url), node->url = NULL; uc_lists_already_checked_links_list = g_list_remove (uc_lists_already_checked_links_list, (gpointer) node); g_free (node), node = NULL; } } void uc_lists_already_checked_links_remove_branch_items (UCLinkProperties * prop) { GList *item = NULL; uc_lists_already_checked_links_remove (prop->normalized_url); item = g_list_first (prop->childs); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; item = g_list_next (item); uc_lists_already_checked_links_remove (lp->normalized_url); if (lp->childs != NULL) uc_lists_already_checked_links_remove_branch_items (lp); } } void uc_lists_already_checked_links_remove_items (UCLinkProperties * prop) { GList *item = NULL; uc_lists_already_checked_links_remove (prop->normalized_url); item = g_list_first (prop->childs); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; item = g_list_next (item); uc_lists_already_checked_links_remove (lp->normalized_url); } } void uc_lists_similar_links_remove_item (GList * list, const gchar * url) { GList *item = NULL; item = g_list_first (list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; GList *tmp = NULL; item = g_list_next (item); tmp = g_list_first (prop->similar_links_parents); while (tmp != NULL) { gchar *sl = (gchar *) tmp->data; tmp = g_list_next (tmp); if (!g_ascii_strcasecmp (sl, url)) { prop->similar_links_parents = g_list_remove (prop->similar_links_parents, (gpointer) sl); g_free (sl), sl = NULL; } if (prop->childs) uc_lists_similar_links_remove_item (prop->childs, url); } } } void uc_lists_similar_links_remove_items (UCLinkProperties * prop) { GList *item = NULL; item = g_list_first (prop->childs); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; GList *i = NULL; item = g_list_next (item); i = g_list_first (lp->similar_links_parents); while (i != NULL) { gchar *tmp = (gchar *) i->data; i = g_list_next (i); if (!g_ascii_strcasecmp (tmp, lp->url)) { lp->similar_links_parents = g_list_remove (lp->similar_links_parents, (gpointer) tmp); g_free (tmp), tmp = NULL; } } } } /* * Append a url in the similar links list */ void uc_lists_similar_links_append (gpointer prop_p, const gchar *url) { UCLinkProperties *prop = (UCLinkProperties *) prop_p; g_return_if_fail (prop != NULL); prop->similar_links_parents = g_list_append (prop->similar_links_parents, g_strdup (url)); } /* * free all allocated url strings */ void uc_lists_already_checked_free (void) { GList *item = NULL; if (uc_lists_already_checked_links_list == NULL) return; item = g_list_first (uc_lists_already_checked_links_list); while (item != NULL) { UCAlreadyChecked *ac = (UCAlreadyChecked *) item->data; item = g_list_next (item); g_free (ac->url), ac->url = NULL; g_free (ac), ac = NULL; } g_list_free (uc_lists_already_checked_links_list), uc_lists_already_checked_links_list = NULL; } /* * allocate and fill a uc_lists_already_checked_links_list node */ static UCAlreadyChecked * uc_lists_already_checked_links_node_new (const gchar * url, gpointer ac_p) { UCAlreadyChecked *ac = NULL; ac = g_new0 (UCAlreadyChecked, 1); ac->url = uc_url_add_slash (url); ac->parent = ac_p; return ac; } /* * return properties of the given checked url * uid */ UCLinkProperties * uc_lists_checked_links_lookup_by_uid (const guint32 uid) { return uc_lists_checked_links_lookup_by_uid_real (uc_lists_checked_links_list, uid); } /* * set the already checked urls list */ void uc_lists_checked_links_set (GList * list) { uc_lists_checked_links_list = list; } void uc_lists_checked_links_dump (GList *list, FILE **fd, const UCExportFormat ftype) { GList *item = NULL; UCLinkProperties *lp = NULL; UCHTMLTag *lps = NULL; gboolean labels = uc_project_get_export_labels (); gboolean numbers = uc_project_get_export_numbering (); gboolean external = uc_project_get_export_external (); gboolean ip = uc_project_get_export_ip (); g_assert (list != NULL); item = g_list_first (list); while (item != NULL) { if (ftype != UC_EXPORT_LIST_SIMPLE) { lp = (UCLinkProperties *) item->data; if (external && strcmp (lp->h_name, uc_project_get_current_host ()) == 0) ; else { /* Treepath dump */ if (numbers) { fwrite (lp->treeview_path, sizeof (gchar), strlen (lp->treeview_path), *fd); fwrite ("\t", 1, 1, *fd); } /* IP dump */ if (ip) { if (lp->ip_addr) fwrite (lp->ip_addr, sizeof (gchar), strlen (lp->ip_addr), *fd); fwrite ("\t", 1, 1, *fd); } /* URL dump */ fwrite (lp->normalized_url, sizeof (gchar), strlen (lp->normalized_url), *fd); /* Link's label dump */ if (labels) { fwrite ("\t", 1, 1, *fd); fwrite (lp->label, sizeof (gchar), strlen (lp->label), *fd); } /* EOL */ fwrite ("\n", 1, 1, *fd); } if (lp->childs != NULL) uc_lists_checked_links_dump (lp->childs, fd, ftype); } else { lps = (UCHTMLTag *) item->data; /* URL dump */ fwrite (lps->value, sizeof (gchar), strlen (lps->value), *fd); /* Link's label dump */ if (labels) { fwrite ("\t", 1, 1, *fd); fwrite (lps->label, sizeof (gchar), strlen (lps->label), *fd); } /* EOL */ fwrite ("\n", 1, 1, *fd); } item = g_list_next (item); } } /* * return the already checked urls list */ GList * uc_lists_checked_links_get (void) { return uc_lists_checked_links_list; } /* * recursively search a item in the * url properties list */ static UCLinkProperties * uc_lists_checked_links_lookup_by_uid_real (GList * list, const guint32 uid) { GList *item = NULL; UCLinkProperties *dum = NULL; UCLinkProperties *lp = NULL; g_return_val_if_fail (list != NULL, NULL); item = g_list_first (list); while (item != NULL) { lp = (UCLinkProperties *) item->data; item = g_list_next (item); if (lp->uid == uid) return lp; if (lp->childs != NULL && (dum = uc_lists_checked_links_lookup_by_uid_real (lp->childs, uid)) != NULL) return dum; } return NULL; } /* * return TRUE if the given url already exist in * the given similar links list */ gboolean uc_lists_similar_links_exist (GList * list, const gchar * url) { GList *item = NULL; if (list == NULL) return FALSE; item = g_list_first (list); while (item != NULL) { gchar *str = (gchar *) item->data; item = g_list_next (item); if (!g_ascii_strcasecmp (str, url)) return TRUE; } return FALSE; } gurlchecker-0.13.1/src/bookmarks.c0000644000175000017500000011050511407055217013742 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "application.h" #include "check.h" #include "project.h" #include "lists.h" #include "report.h" #include "html_parser.h" #include "utils.h" #include "url.h" #include "timeout.h" #include "bookmarks.h" static UCLinkProperties *parents[UC_MAX_DEPTH_LEVEL]; static UCLinkProperties *uc_bookmarks_register_folder ( const UCLinkProperties *parent, const xmlNodePtr parent_xml_node, const guint32 folder_id, const guint32 id, const guint depth, const gchar *label); static UCLinkProperties *uc_bookmarks_register_link (const guint depth, const gchar *label, const gchar *value); static GList *uc_bookmarks_get_links (void); static void uc_bookmarks_reassign_parents (GList * list, UCLinkProperties * parent); // Firefox #ifdef ENABLE_SQLITE3 #define FF_QUERY_GET_ROOT \ "SELECT folder_id FROM moz_bookmarks_roots WHERE root_name='menu'" #define FF_QUERY_GET_CHILDS \ "SELECT \ mb.id AS mb_id, \ mb.parent AS folder_id, \ mb.title, \ mp.id, \ mp.title AS label, \ mp.url \ FROM \ moz_bookmarks AS mb LEFT JOIN moz_places AS mp \ ON mb.fk = mp.id \ WHERE mb.title <> '' \ AND mb.parent = %i" #define FF_QUERY_DELETE_ITEM \ "DELETE FROM moz_bookmarks WHERE fk = %i" static sqlite3 *sqlite3_cnx = NULL; static GList *uc_bookmarks_firefox_get_content (void); static gint uc_bookmarks_firefox_cb (gpointer data, gint argc, gchar **argv, gchar **azColName); static void uc_bookmarks_firefox_delete_item (const guint32 id); static void uc_bookmarks_sqlite3_close (void); static gint uc_bookmarks_sqlite3_open (const gchar *file); static gint uc_bookmarks_sqlite3_query (const gchar *query); #endif // Google Chrome #ifdef ENABLE_JSON static GList *uc_bookmarks_googlechrome_get_content (const gchar * docname); static GList *uc_bookmarks_googlechrome_parse (JsonNode *node, UCLinkProperties *parent, GList **list); static void uc_bookmarks_googlechrome_delete_item (JsonArray *array, const guint32 id); static JsonParser *uc_bookmarks_googlechrome_doc = NULL; #endif static guint depth = 0; // XBEL static xmlDocPtr uc_bookmarks_xbel_doc = NULL; static xmlDocPtr uc_bookmarks_xbel_parse_file (const gchar * docname); static GList *uc_bookmarks_xbel_parse_bookmark (guint depth, GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_bookmarks_xbel_parse_folder (guint depth, GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_bookmarks_xbel_get_content (const gchar * docname); // Opera static gchar **uc_bookmarks_opera_doc = NULL; static GList *uc_bookmarks_opera_get_content (const gchar * docname); static void uc_bookmarks_opera_delete_item (const guint32 id); static gchar *uc_bookmarks_opera_file_get_value (gchar **arr, gchar *key); static GList *uc_bookmarks_opera_parse_folder (GList * list, gchar **arr); static void uc_bookmarks_opera_save (void); ///////////////////////// Common bookmarks functions ////////////////////////// static UCLinkProperties * uc_bookmarks_register_folder (const UCLinkProperties *parent, const xmlNodePtr parent_xml_node, const guint32 folder_id, const guint32 id, const guint depth, const gchar *label) { UCLinkProperties *prop = NULL; prop = uc_check_link_properties_node_new (); prop->parent = (UCLinkProperties *) parent; prop->xml_node = (xmlNodePtr) parent_xml_node; prop->bookmark_folder_id = folder_id; prop->bookmark_id = id; prop->depth_level = depth; prop->label = g_strdup (label); prop->link_value = g_strdup (""); prop->link_icon = gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/link_type_folder.png", NULL); prop->link_type = LINK_TYPE_BOOKMARK_FOLDER; prop->header = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); uc_check_link_already_checked_with_insert (prop, ""); return prop; } static UCLinkProperties * uc_bookmarks_register_link (const guint depth, const gchar *label, const gchar *value) { UCLinkProperties *prop = NULL; UCHTMLTag *tag = NULL; gchar *hostname = NULL; gboolean accept; gchar *proto = NULL; tag = uc_html_parser_node_new (); tag->depth = depth; tag->label = g_strdup (label); tag->value = g_strdup (value); proto = uc_url_get_protocol (tag->value); tag->type = (strcmp (proto, UC_PROTOCOL_FILE) == 0) ? LINK_TYPE_FILE_HREF : LINK_TYPE_HREF; g_free (proto), proto = NULL; uc_check_currentitem_init (NULL, "", tag, tag->value, FALSE); hostname = uc_url_get_hostname ("", tag->value); if (!uc_timeout_domains_is_blocked (hostname)) { prop = uc_check_link_get_properties (depth, "", "", tag, NULL, &accept, 0); if (prop != NULL && accept) { prop->normalized_url = g_strdup (prop->url); // Run security tests if requested if (uc_project_get_security_checks ("any")) uc_check_run_security_checks (prop); // Run w3c tests if requested if (uc_project_get_w3c_checks ("any")) uc_check_run_w3c_checks (prop); } } else if (prop != NULL) { // FIXME g_warning (">> FIXME DEBUG : prop != NULL (should never append)\n"); } else { // FIXME g_warning (">> FIXME DEBUG : Freeing tag\n"); uc_html_parser_node_free (&tag); } g_free (hostname), hostname = NULL; return prop; } /** * uc_bookmarks_get_links: * * Get all the links of a given bookmarks * file. * * Returns: A #GList of #UCLinkPropeties node from bookmarks file. */ static GList * uc_bookmarks_get_links (void) { GList *list = NULL; switch (uc_project_get_bookmarks_type ()) { #ifdef ENABLE_JSON // Google Chrome case UC_BOOKMARKS_TYPE_GOOGLECHROME: list = uc_bookmarks_googlechrome_get_content ( uc_project_get_bookmarks_file ()); break; #endif // XBEL case UC_BOOKMARKS_TYPE_XBEL: list = uc_bookmarks_xbel_get_content (uc_project_get_bookmarks_file ()); break; // Opera case UC_BOOKMARKS_TYPE_OPERA: list = uc_bookmarks_opera_get_content (uc_project_get_bookmarks_file ()); break; #ifdef ENABLE_SQLITE3 // FF sqlite3 case UC_BOOKMARKS_TYPE_FIREFOX: list = uc_bookmarks_firefox_get_content (); break; #endif // Default case UC_BOOKMARKS_TYPE_NONE: default: g_assert_not_reached (); } return list; } /** * uc_bookmarks_reassign_parents: * @list: Bookmarks list. * @parent: Parent node. * * Reorganize parents/childs in the URLs list. */ static void uc_bookmarks_reassign_parents (GList * list, UCLinkProperties * parent) { GList *item = NULL; item = g_list_first (list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); prop->parent = parent; if (prop->childs) uc_bookmarks_reassign_parents (prop->childs, prop); } } /** * uc_bookmarks_save_changes: * * Save bookmarks changes. * * Returns: %TRUE if the save must be done. */ gint uc_bookmarks_save_changes (void) { gchar *new_path = NULL; gint res = 0; if (!g_file_test (uc_project_get_bookmarks_file (), G_FILE_TEST_EXISTS)) { gchar *filename = NULL; res = uc_application_dialog_yes_no_show ( _("Should remote bookmarks be saved on your machine?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return res; filename = uc_application_input_file_dialog ( _("Save bookmarks file"), _("Input filename")); if (!filename) return GTK_RESPONSE_CANCEL; xmlSaveFile (filename, uc_bookmarks_xbel_doc); if ((!g_file_test (filename, G_FILE_TEST_EXISTS))) { uc_application_dialog_show ( _("The filename is not in a correct format.\n" "Nothing has been done."), GTK_MESSAGE_ERROR); g_free (filename), filename = NULL; return GTK_RESPONSE_CANCEL; } g_free (filename), filename = NULL; uc_project_set_save_bookmarks (FALSE); } else { switch (uc_project_get_bookmarks_type ()) { #ifdef ENABLE_JSON // Google Chrome case UC_BOOKMARKS_TYPE_GOOGLECHROME: #endif // Opera case UC_BOOKMARKS_TYPE_OPERA: // XBEL case UC_BOOKMARKS_TYPE_XBEL: res = uc_application_dialog_yes_no_show ( _("Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" " "extension.\n" "Do you want to save?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return res; new_path = g_strconcat (uc_project_get_bookmarks_file (), ".uc", NULL); if (rename (uc_project_get_bookmarks_file (), new_path) == 0) { #ifdef ENABLE_JSON if (uc_project_get_bookmarks_type () == UC_BOOKMARKS_TYPE_GOOGLECHROME) { JsonGenerator *gen = json_generator_new (); json_generator_set_root (gen, json_parser_get_root ( uc_bookmarks_googlechrome_doc)); json_generator_to_file (gen, uc_project_get_bookmarks_file (), NULL); g_object_unref (gen); } else #endif if (uc_project_get_bookmarks_type () == UC_BOOKMARKS_TYPE_OPERA) uc_bookmarks_opera_save (); else xmlSaveFile (uc_project_get_bookmarks_file (), uc_bookmarks_xbel_doc); uc_project_set_save_bookmarks (FALSE); } else uc_application_dialog_show ( _("A error occured.\n" "Nothing has been done."), GTK_MESSAGE_ERROR); g_free (new_path), new_path = NULL; break; #ifdef ENABLE_SQLITE3 // FF sqlite3 case UC_BOOKMARKS_TYPE_FIREFOX: res = uc_application_dialog_yes_no_show ( _("Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox " "database before applying changes!\n" "Do you want to apply?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return res; uc_bookmarks_sqlite3_query ("COMMIT"); uc_bookmarks_sqlite3_query ("BEGIN"); uc_project_set_save_bookmarks (FALSE); break; #endif // Default case UC_BOOKMARKS_TYPE_NONE: default: g_assert_not_reached (); } } return GTK_RESPONSE_YES; } void uc_bookmarks_delete_bad_links (GList *list) { GList *item = NULL; UCLinkProperties *prop = NULL; gchar *status_code = NULL; item = g_list_first (list); while (item != NULL) { prop = (UCLinkProperties *) item->data; item = g_list_next (item); if (prop->link_type == LINK_TYPE_META || prop->to_delete || prop->link_type == LINK_TYPE_NONE) continue; if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_bookmarks_delete_bad_links (prop->childs); } else { status_code = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); if (strcmp (status_code, UC_STATUS_CODE_PAGE_NOT_FOUND) == 0) uc_bookmarks_delete_link (prop); } } } /** * uc_bookmarks_delete_link: * @prop: #UCLinkProperties node to work with. * * Remove a node on the treeview list. * The removal is virtual in the local lists (to_delete = TRUE) */ void uc_bookmarks_delete_link (UCLinkProperties *prop) { prop->to_delete = TRUE; switch (uc_project_get_bookmarks_type ()) { // XBEL case UC_BOOKMARKS_TYPE_XBEL: xmlUnlinkNode (prop->xml_node); xmlFreeNode (prop->xml_node), prop->xml_node = NULL; break; #ifdef ENABLE_SQLITE3 // FF sqlite3 case UC_BOOKMARKS_TYPE_FIREFOX: uc_bookmarks_firefox_delete_item (prop->bookmark_id); break; #endif #ifdef ENABLE_JSON // Google Chrome case UC_BOOKMARKS_TYPE_GOOGLECHROME: uc_bookmarks_googlechrome_delete_item (prop->json_array, prop->bookmark_id); break; #endif // Opera case UC_BOOKMARKS_TYPE_OPERA: uc_bookmarks_opera_delete_item (prop->bookmark_id); break; // Default case UC_BOOKMARKS_TYPE_NONE: default: g_assert_not_reached (); } } void uc_bookmarks_free (void) { guint i = 0; for (i = 0; i < UC_MAX_DEPTH_LEVEL; i++) parents[i] = NULL; if (uc_bookmarks_xbel_doc != NULL) xmlFreeDoc (uc_bookmarks_xbel_doc), uc_bookmarks_xbel_doc = NULL; if (uc_bookmarks_opera_doc != NULL) g_strfreev (uc_bookmarks_opera_doc), uc_bookmarks_opera_doc = NULL; #ifdef ENABLE_SQLITE3 uc_bookmarks_sqlite3_close (); #endif #ifdef ENABLE_JSON if (uc_bookmarks_googlechrome_doc != NULL) g_object_unref (uc_bookmarks_googlechrome_doc), uc_bookmarks_googlechrome_doc = NULL; #endif uc_project_set_bookmarks_type (UC_BOOKMARKS_TYPE_NONE); } /** * uc_bookmarks_begin_check: * * Begin the bookmarks check. */ void uc_bookmarks_begin_check (void) { guint timer_id = 0; gchar *tmp = NULL; GtkWidget *widget = NULL; GtkTreeIter iter; uc_application_draw_main_frames (); uc_application_progress_dialog_show (); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_FIRST, _("Check in progress...")); UC_UPDATE_UI; UC_GET_WIDGET ("urls_list", WGET ("main_window"), widget); treeview = GTK_TREE_VIEW (widget); treestore = gtk_tree_store_new (N_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); uc_application_build_url_treeview (); gtk_widget_show (widget); tmp = g_strconcat ("gURLChecker ", UC_VERSION, " - ", uc_project_get_bookmarks_file (), NULL); gtk_window_set_title (GTK_WINDOW (WGET ("main_window")), tmp); g_free (tmp), tmp = NULL; /* init timer */ timer_id = g_timeout_add (1000, &uc_report_timer_callback, NULL); uc_project_set_check_is_current (TRUE); uc_project_set_check_is_main (TRUE); uc_project_set_current_host (""); uc_project_set_current_port (UC_URL_DEFAULT_PORT); uc_lists_checked_links_set (uc_bookmarks_get_links ()); uc_project_set_check_is_main (FALSE); uc_project_set_check_is_current (FALSE); g_source_remove (timer_id), timer_id = 0; gtk_tree_store_clear (treestore); UC_DISPLAY_SET_ALL; uc_check_display_list (uc_lists_checked_links_get (), NULL, iter); gtk_widget_hide (WGET ("progress_dialog")); /* Update some menu items */ WSENS ("mwm_delete_all_bad_links", TRUE); WSENS ("mwm_display", TRUE); WSENS ("mwm_delete_project", FALSE); WSENS ("mwm_refresh_all", FALSE); WSENS ("mwm_refresh_main_page", FALSE); WSENS ("mwm_find", !uc_project_get_speed_check ()); WSENS ("mwm_display_security_alerts", !uc_project_get_speed_check ()); uc_check_cancel_set_value (FALSE); } UCBookmarksType uc_bookmarks_guess_type (const gchar *file) { UCBookmarksType btype = UC_BOOKMARKS_TYPE_NONE; if (uc_bookmarks_format_is_opera (file)) btype = UC_BOOKMARKS_TYPE_OPERA; else if (uc_bookmarks_format_is_xbel (file)) btype = UC_BOOKMARKS_TYPE_XBEL; #ifdef ENABLE_SQLITE3 else if (uc_bookmarks_format_is_firefox (file)) btype = UC_BOOKMARKS_TYPE_FIREFOX; #endif #ifdef ENABLE_JSON else if (uc_bookmarks_format_is_googlechrome (file)) btype = UC_BOOKMARKS_TYPE_GOOGLECHROME; #endif return btype; } ////////////////////////////// Firefox //////////////////////////////////////// gboolean uc_bookmarks_format_is_firefox (const gchar *file) { gboolean ret = FALSE; #ifdef ENABLE_SQLITE3 gchar *error = NULL; ret = (uc_bookmarks_sqlite3_open (file) == SQLITE_OK); if (!ret) g_warning ("Bookmarks: can't open FF sqlite3 database: %s\n", sqlite3_errmsg (sqlite3_cnx)); else { if (sqlite3_exec (sqlite3_cnx, "SELECT id FROM moz_places LIMIT 1", NULL, NULL, &error) != SQLITE_OK) { ret = FALSE; sqlite3_free (error), error = NULL; } } uc_bookmarks_sqlite3_close (); #endif return ret; } #ifdef ENABLE_SQLITE3 static void uc_bookmarks_sqlite3_close (void) { if (sqlite3_cnx != NULL) { sqlite3_close (sqlite3_cnx); sqlite3_cnx = NULL; } } static gint uc_bookmarks_sqlite3_open (const gchar *file) { gint ret = -1; if (sqlite3_cnx != NULL) ret = SQLITE_OK; else ret = sqlite3_open_v2 ((file)?file:uc_project_get_bookmarks_file (), &sqlite3_cnx, SQLITE_OPEN_READWRITE, NULL); return ret; } static gint uc_bookmarks_sqlite3_query (const gchar *query) { sqlite3_stmt *stmt = NULL; gint rc; sqlite3_prepare_v2 (sqlite3_cnx, query, strlen (query), &stmt, NULL); rc = sqlite3_step (stmt); sqlite3_finalize (stmt); return rc; } static void uc_bookmarks_firefox_delete_item (const guint32 id) { gchar *query = NULL; query = g_strdup_printf (FF_QUERY_DELETE_ITEM, id); uc_bookmarks_sqlite3_query (query); g_free (query), query = NULL; } static gint uc_bookmarks_firefox_cb (gpointer data, gint argc, gchar **argv, gchar **azColName) { gint i = 0; UCLinkProperties *prop = NULL; gchar *hostname = NULL; gchar *key = NULL; gchar *value = NULL; gchar *query = NULL; gchar *error = NULL; gint folder_id = 0; gchar *folder_name = NULL; gint id = 0; gint mb_id = 0; GList **list = (GList **) data; if (uc_check_cancel_get_value ()) return SQLITE_OK; uc_report_display_update (); uc_check_wait (); for (i = 0; i < argc; i++) { if (strcmp (azColName[i], "label") == 0) key = g_strdup ((argv[i]) ? argv[i] : ""); if (strcmp (azColName[i], "title") == 0) folder_name = g_strdup ((argv[i]) ? argv[i] : ""); else if (strcmp (azColName[i], "url") == 0) value = g_strdup ((argv[i]) ? argv[i] : ""); else if (strcmp (azColName[i], "folder_id") == 0) folder_id = atoi ((argv[i]) ? argv[i] : "0"); else if (strcmp (azColName[i], "id") == 0) id = atoi ((argv[i]) ? argv[i] : "0"); else if (strcmp (azColName[i], "mb_id") == 0) mb_id = atoi ((argv[i]) ? argv[i] : "0"); } // Folder if (strlen (key) == 0) { prop = uc_bookmarks_register_folder (NULL, NULL, folder_id, id, depth, folder_name); *list = g_list_append (*list, uc_check_register_link ("", prop)); ++depth; query = g_strdup_printf (FF_QUERY_GET_CHILDS, mb_id); sqlite3_exec (sqlite3_cnx, query, uc_bookmarks_firefox_cb, &prop->childs, &error); g_free (query), query = NULL; --depth; } // Link else { prop = uc_bookmarks_register_link (depth, key, value); if (prop != NULL) { prop->bookmark_folder_id = folder_id; prop->bookmark_id = id; *list = g_list_append (*list, uc_check_register_link (prop->url, prop)); } } g_free (key), key = NULL; g_free (value), value = NULL; g_free (folder_name), folder_name = NULL; g_free (hostname), hostname = NULL; return SQLITE_OK; } static GList * uc_bookmarks_firefox_get_content (void) { sqlite3_stmt *stmt = NULL; gchar *error = NULL; gchar *query = NULL; gint root_id; gint rc; GList *list = NULL; uc_bookmarks_sqlite3_open (NULL); uc_bookmarks_sqlite3_query ("BEGIN"); // Get id off bookmarks root "menu" sqlite3_prepare_v2 (sqlite3_cnx, FF_QUERY_GET_ROOT, strlen (FF_QUERY_GET_ROOT), &stmt, NULL); sqlite3_step (stmt); root_id = sqlite3_column_int (stmt, 0); sqlite3_finalize (stmt); // Get list of links query = g_strdup_printf (FF_QUERY_GET_CHILDS, root_id); rc = sqlite3_exec (sqlite3_cnx, query, uc_bookmarks_firefox_cb, &list, &error); g_free (query), query = NULL; uc_bookmarks_reassign_parents (list, NULL); return list; } #endif // ENABLE_SQLITE3 ////////////////////////////// XBEL /////////////////////////////////////////// /** * uc_bookmarks_format_is_xbel: * @file: The file to check. * * Check the format of a given XBEL file. * * Returns: TRUE if the given file is in XBEL format. */ gboolean uc_bookmarks_format_is_xbel (const gchar * file) { gchar *buffer = NULL; gboolean ret = FALSE; gsize length = 0; g_file_get_contents (file, &buffer, &length, NULL); ret = ((strstr (buffer, "") != NULL) || (strstr (buffer, " XBEL>") != NULL)); g_free (buffer), buffer = NULL; return ret; } /** * uc_bookmarks_xbel_parse_bookmark: * @depth: Depth of the node. * @list: The list to work with. * @doc: The XML doc to work with. * @cur: The XML cursor to work with. * * Parse bookmark entity. * * Returns: A #GList of #UCLinkProperties nodes. */ static GList * uc_bookmarks_xbel_parse_bookmark (guint depth, GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *key = NULL; xmlChar *value = NULL; xmlNodePtr parent = NULL; uc_report_display_update (); uc_check_wait (); value = xmlGetProp (cur, (const xmlChar *) "href"); parent = cur; cur = cur->xmlChildrenNode; while (cur != NULL && !uc_check_cancel_get_value ()) { if (!xmlStrcmp (cur->name, (const xmlChar *) "title")) { UCLinkProperties *prop = NULL; key = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); prop = uc_bookmarks_register_link (depth, (gchar *) key, (gchar *) value); xmlFree (key), key = NULL; if (prop != NULL) { prop->xml_node = parent; list = g_list_append (list, uc_check_register_link (prop->url, prop)); } break; } cur = cur->next; } xmlFree (value), value = NULL; return list; } /** * uc_bookmarks_xbel_parse_folder: * @depth: Depth of the node. * @list: The list to work with. * @doc: The XML doc to work with. * @cur: The XML cursor to work with. * * Parse folder entity. * * Returns: A #GList of #UCLinkProperties nodes. */ static GList * uc_bookmarks_xbel_parse_folder (guint depth, GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *key = NULL; xmlNodePtr parent = NULL; uc_report_display_update (); if (depth == uc_project_get_depth_level ()) return list; parent = cur; cur = cur->xmlChildrenNode; while (cur != NULL && !uc_check_cancel_get_value ()) { if (!xmlStrcmp (cur->name, (const xmlChar *) "title")) { UCLinkProperties *prop = NULL; key = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); prop = uc_bookmarks_register_folder (NULL, parent, 0, 0, depth, (gchar *) key); xmlFree (key), key = NULL; list = g_list_append (list, uc_check_register_link ("", prop)); parents[depth] = prop; } else if (!xmlStrcmp (cur->name, (const xmlChar *) "bookmark")) parents[depth]->childs = uc_bookmarks_xbel_parse_bookmark (depth + 1, parents[depth]->childs, doc, cur); else if (!xmlStrcmp (cur->name, (const xmlChar *) "folder")) parents[depth]->childs = uc_bookmarks_xbel_parse_folder (depth + 1, parents[depth]->childs, doc, cur); cur = cur->next; } return list; } /** * uc_bookmarks_xbel_parse_file: * @docname: Path of the document to open. * * Open xml file and parse it with DOM. * if there is a encoding problem, rebuild the given file by specifying * the encoding based on current locales and try to parse it again. * * Returns: A #xmlDocPtr reference. */ static xmlDocPtr uc_bookmarks_xbel_parse_file (const gchar * docname) { xmlDocPtr doc = NULL; doc = xmlParseFile (docname); if (doc == NULL) { FILE *fd = NULL; gchar *buffer = NULL; gchar **tab = NULL; gchar *filename = NULL; guint32 i = 0; filename = g_strdup_printf ("%s/%s/%s.%u", uc_project_get_working_path (), uc_project_get_cache_name (), strrchr (docname, '/'), getpid ()); fd = fopen (filename, "w"); g_assert (fd != NULL); g_file_get_contents (docname, &buffer, NULL, NULL); g_assert (buffer != NULL); tab = g_strsplit (buffer, "\n", 0); while (tab[i]) { if (strstr (tab[i], "", uc_project_get_local_charset ()); break; } i++; } if (tab[i] == NULL) fprintf (fd, "\n" "%s", uc_project_get_local_charset (), buffer); else { g_free (buffer), buffer = NULL; buffer = g_strjoinv ("\n", tab); fprintf (fd, "%s", buffer); } fclose (fd); doc = xmlParseFile (filename); unlink (filename); g_free (filename), filename = NULL; g_strfreev (tab), tab = NULL; g_free (buffer), buffer = NULL; } return doc; } /** * uc_bookmarks_xbel_get_content: * @docname: Path of the document to open. * * Retreive URLs from a given file. * * Returns: A #GList of #UCLinkPropeties node from bookmarks file. */ static GList * uc_bookmarks_xbel_get_content (const gchar * docname) { GList *list = NULL; xmlNodePtr cur = NULL; uc_bookmarks_xbel_doc = uc_bookmarks_xbel_parse_file (docname); if (uc_bookmarks_xbel_doc == NULL) { uc_application_dialog_show (_("Either the given XML file is not well " "formed or its encoding can not " "be found...\n" "If you are checking a remote bookmarks " "file, try to pump up the timeout " "delay.\n" "Check has been aborted."), GTK_MESSAGE_ERROR); return NULL; } cur = xmlDocGetRootElement (uc_bookmarks_xbel_doc); if (cur == NULL) { uc_application_dialog_show (_("The given XML file is empty.\n"), GTK_MESSAGE_WARNING); return NULL; } cur = cur->xmlChildrenNode; while (cur != NULL && !uc_check_cancel_get_value ()) { if (!xmlStrcmp (cur->name, (const xmlChar *) "bookmark")) list = uc_bookmarks_xbel_parse_bookmark (0, list, uc_bookmarks_xbel_doc, cur); else if (!xmlStrcmp (cur->name, (const xmlChar *) "folder")) list = uc_bookmarks_xbel_parse_folder (0, list, uc_bookmarks_xbel_doc, cur); cur = cur->next; } uc_bookmarks_reassign_parents (list, NULL); return list; } ////////////////////////////// Google Chrome ///////////////////////////////// /** * uc_bookmarks_format_googlechrome: * @file: The file to check. * * Check the format of a given Google Chrome. * * Returns: TRUE if the given file is in Google Chrome format. */ gboolean uc_bookmarks_format_is_googlechrome (const gchar * file) { gboolean ret = FALSE; #ifdef ENABLE_JSON GError *error = NULL; JsonParser *parser = NULL; parser = json_parser_new (); ret = json_parser_load_from_file (parser, file, &error); g_object_unref (parser); #endif return ret; } #ifdef ENABLE_JSON static void uc_bookmarks_googlechrome_delete_item (JsonArray *array, const guint32 id) { GList *l = NULL; GList *items = NULL; guint i = 0; l = items = json_array_get_elements (array); while (items != NULL) { if (atoi (json_node_get_string ( json_object_get_member (json_node_get_object (items->data), "id"))) == id) json_array_remove_element (array, i); items = items->next; i++; } g_list_free (l); } /** * uc_bookmarks_googlechrome_get_content: * @docname: Path of the document to open. * * Retreive URLs from a given file. * * Returns: A #GList of #UCLinkPropeties node from bookmarks file. */ static GList * uc_bookmarks_googlechrome_get_content (const gchar * docname) { GList *list = NULL; JsonNode *root; GError *error = NULL; uc_bookmarks_googlechrome_doc = json_parser_new (); json_parser_load_from_file (uc_bookmarks_googlechrome_doc, docname, &error); root = json_parser_get_root (uc_bookmarks_googlechrome_doc); root = json_object_get_member(json_node_get_object (root), "roots"); list = uc_bookmarks_googlechrome_parse (root, NULL, &list); return list; } static GList * uc_bookmarks_googlechrome_parse (JsonNode *node, UCLinkProperties *parent, GList **list) { GList *items = NULL; GList *l = NULL; JsonObject *object = NULL; JsonArray *array = NULL; UCLinkProperties *p = parent; switch (JSON_NODE_TYPE (node)) { case JSON_NODE_OBJECT: object = json_node_get_object (node); l = items = json_object_get_members(object); while (items != NULL) { JsonNode *node = json_object_get_member (object, items->data); *list = uc_bookmarks_googlechrome_parse (node, parent, list); items = items->next; } g_list_free (l); break; case JSON_NODE_ARRAY: array = json_node_get_array (node); l = items = json_array_get_elements (array); while (items != NULL && !uc_check_cancel_get_value ()) { JsonNode *element = items->data; JsonObject *obj = json_node_get_object(element); UCLinkProperties *prop = NULL; uc_report_display_update (); uc_check_wait (); if (strcmp (json_node_get_string ( json_object_get_member (obj, "type")), "folder") == 0) { const gchar *folder_id = json_node_get_string ( json_object_get_member (obj, "id")); const gchar *folder_name = json_node_get_string ( json_object_get_member (obj, "name")); prop = uc_bookmarks_register_folder (p, NULL, atoi (folder_id), 0, depth, folder_name); *list = g_list_append (*list, uc_check_register_link ("", prop)); p = prop; ++depth; prop->childs = uc_bookmarks_googlechrome_parse (element, p, &prop->childs); --depth; } else if (strcmp (json_node_get_string ( json_object_get_member (obj, "type")), "url") == 0) { const gchar *id = json_node_get_string ( json_object_get_member (obj, "id")); const gchar *key = json_node_get_string ( json_object_get_member (obj, "name")); const gchar *value = json_node_get_string ( json_object_get_member (obj, "url")); prop = uc_bookmarks_register_link (depth, key, value); if (prop != NULL) { prop->parent = p; prop->bookmark_folder_id = (p) ? p->bookmark_folder_id : 0; prop->bookmark_id = atoi (id); prop->json_array = array; *list = g_list_append (*list, uc_check_register_link (prop->url, prop)); } } else *list = uc_bookmarks_googlechrome_parse (element, p, list); items = items->next; } g_list_free (l); break; default: ; } return *list; } #endif // ENABLE_JSON ////////////////////////////// Opera ////////////////////////////////////////// /** * uc_bookmarks_format_is_opera: * @file: The file to check. * * Check the format of a given Opera file. * * Returns: TRUE if the given file is in Opera format. */ gboolean uc_bookmarks_format_is_opera (const gchar * file) { gchar *buffer = NULL; gboolean ret = FALSE; gsize length = 0; g_file_get_contents (file, &buffer, &length, NULL); ret = (strstr (buffer, "Opera Hotlist") != NULL); g_free (buffer), buffer = NULL; return ret; } static void uc_bookmarks_opera_delete_item (const guint32 id) { guint32 i = 0; while (uc_bookmarks_opera_doc[i]) { if (strcmp (uc_bookmarks_opera_doc[i], "#URL") == 0 && atoi (uc_bookmarks_opera_file_get_value ( &uc_bookmarks_opera_doc[i], "ID")) == id) { while (*uc_bookmarks_opera_doc[i]) { *uc_bookmarks_opera_doc[i] = 'D'; ++i; } break; } ++i; } } static gchar * uc_bookmarks_opera_file_get_value (gchar **arr, gchar *key) { gint i = 0; gchar *lkey = NULL; gchar *ret = NULL; lkey = g_strconcat ("\t", key, "=", NULL); while (*arr[i] && (ret = strstr (arr[i++], lkey)) == NULL); if (ret != NULL) ret += strlen (lkey); g_free (lkey), lkey = NULL; return ret; } static void uc_bookmarks_opera_save (void) { guint32 i = 0; FILE *fd; fd = fopen (uc_project_get_bookmarks_file (), "w"); while (uc_bookmarks_opera_doc[i]) { if (*uc_bookmarks_opera_doc[i] != 'D') { gchar *line = g_strconcat (uc_bookmarks_opera_doc[i], "\n", NULL); fwrite (line, 1, strlen (line), fd); g_free (line), line = NULL; } ++i; } fclose (fd); } /** * uc_bookmarks_opera_parse_folder: * @list: The list to work with. * @arr: Opera file splitted in lines. * * Parse Opera file. * * Returns: A #GList of #UCLinkProperties nodes. */ static GList * uc_bookmarks_opera_parse_folder (GList * list, gchar **arr) { guint32 i = 0; gboolean trash_folder = FALSE; uc_report_display_update (); if (depth == uc_project_get_depth_level ()) return list; while (arr[i] && !uc_check_cancel_get_value ()) { UCLinkProperties *prop = NULL; // Folder in if (strcmp (arr[i], "#FOLDER") == 0) { // Ignore trash folder trash_folder = (uc_bookmarks_opera_file_get_value (&arr[i], "TRASH FOLDER") != NULL); if (!trash_folder) { prop = uc_bookmarks_register_folder ( parents[depth], NULL, atoi (uc_bookmarks_opera_file_get_value (&arr[i], "ID")), 0, depth, uc_bookmarks_opera_file_get_value (&arr[i], "NAME")); if (parents[depth]) parents[depth]->childs = g_list_append (parents[depth]->childs, uc_check_register_link ("", prop)); else list = g_list_append (list, uc_check_register_link ("", prop)); parents[++depth] = prop; } } // Bookmark else if (strcmp (arr[i], "#URL") == 0) { prop = uc_bookmarks_register_link ( depth, uc_bookmarks_opera_file_get_value (&arr[i], "NAME"), uc_bookmarks_opera_file_get_value (&arr[i], "URL")); if (prop != NULL) { prop->bookmark_id = atoi (uc_bookmarks_opera_file_get_value (&arr[i], "ID")); if (parents[depth]) { prop->parent = parents[depth]; prop->bookmark_folder_id = prop->parent->bookmark_folder_id; parents[depth]->childs = g_list_append (parents[depth]->childs, uc_check_register_link (prop->url, prop)); } else list = g_list_append (list, uc_check_register_link (prop->url, prop)); } } // Folder out else if (*arr[i] == '-' && !trash_folder) --depth; ++i; } return list; } static GList * uc_bookmarks_opera_get_content (const gchar * docname) { GList *list = NULL; gchar *buffer = NULL; gsize length = 0; g_file_get_contents (docname, &buffer, &length, NULL); uc_bookmarks_opera_doc = g_strsplit (buffer, "\n", 0); list = uc_bookmarks_opera_parse_folder (list, uc_bookmarks_opera_doc); g_free (buffer), buffer = NULL; return list; } gurlchecker-0.13.1/src/tooltips.c0000644000175000017500000002206211325343721013626 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "check.h" #include "application.h" #include "lists.h" #include "project.h" #include "tooltips.h" /** * UCTTMain: * @x: X mouse coord. * @y: Y mouse coord. * @active: %TRUE if tooltip is being displayed. * @out: %TRUE is the mouse is out of the tooltip window. * @last_id: #UCLinkProperties Id of the last row for which we displayed * tooltip in the main tree view. * @current_id: #UCLinkProperties Id of the current row for which we are * displaying tooltip. * * Structure for the tooltips object. */ typedef struct _UCTTMain UCTTMain; struct _UCTTMain { gint32 x; gint32 y; gboolean active; gboolean out; guint32 last_id; guint32 current_id; }; static UCTTMain uc_tooltips_main; static GtkWidget *treeview_tooltip = NULL; static guint timer_id = 0; static gboolean uc_tooltips_display_tooltips_value = TRUE; static gboolean uc_tooltips_main_cb (gpointer data); /** * uc_tooltips_main_set_display: * @value: %TRUE if we must display tooltips. * * Set it user want that tooltips be displayed or not. */ void uc_tooltips_main_set_display (const gboolean value) { uc_tooltips_display_tooltips_value = value; } /** * uc_tooltips_main_get_display: * * Check if we can display tooltips. * * Returns: %TRUE if we must display tooltips. */ gboolean uc_tooltips_main_get_display (void) { return uc_tooltips_display_tooltips_value; } /** * uc_tooltips_init: * * Initialize tooltips object. */ void uc_tooltips_init (void) { if (timer_id != 0) return; timer_id = g_timeout_add (UC_TOOLTIPS_DELAY_DEFAULT, &uc_tooltips_main_cb, NULL); uc_tooltips_main_set_mouse_coord (0, 0); uc_tooltips_main_set_active (FALSE); uc_tooltips_main_set_frozen (FALSE); uc_tooltips_main_set_last_id (0); uc_tooltips_main_set_current_id (0); uc_tooltips_main_set_display (FALSE); } /** * uc_tooltips_main_cb: * @data: Always %NULL. * * Callback to manage tooltip show/hide. * * Returns: Always %TRUE. */ static gboolean uc_tooltips_main_cb (gpointer data) { GtkWidget *widget = NULL; GtkTreePath *treepath = NULL; GValue *value = NULL; gchar *str = NULL; UCLinkProperties *prop = NULL; gint32 x = 0; gint32 y = 0; GtkTreeIter iter; if (treeview == NULL || !uc_tooltips_main_get_display () || uc_tooltips_main_get_frozen () || uc_lists_checked_links_is_empty () || (uc_project_get_url () == NULL && !uc_project_get_check_is_bookmarks ())) return TRUE; uc_tooltips_main_get_mouse_coord (&x, &y); gtk_tree_view_get_path_at_pos (treeview, x, y, &treepath, NULL, NULL, NULL); if (treepath == NULL) { uc_tooltips_main_destroy (); return TRUE; } gtk_tree_model_get_iter (GTK_TREE_MODEL (treestore), &iter, treepath); gtk_tree_path_free (treepath), treepath = NULL; value = g_new0 (GValue, 1); gtk_tree_model_get_value (GTK_TREE_MODEL (treestore), &iter, 0, value); uc_tooltips_main_set_current_id (g_value_get_int (value)); g_value_unset (value); prop = uc_lists_checked_links_lookup_by_uid (uc_tooltips_main_get_current_id ()); if (prop == NULL || prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { uc_tooltips_main_destroy (); return TRUE; } if (!uc_tooltips_main_get_active ()) { uc_tooltips_main_set_active (TRUE); uc_tooltips_main_set_last_id (uc_tooltips_main_get_current_id ()); treeview_tooltip = WGET ("treeview_tooltip"); if (!uc_tooltips_main_get_frozen ()) { gint32 wx = 0; gint32 wy = 0; gint32 ph = 0; gint32 pw = 0; gchar *lm_date = NULL; gchar *parent_url = NULL; gchar *url = NULL; GtkWidget *w = treeview_tooltip; UCStatusCode *sc = NULL; GdkColor color; parent_url = (prop->parent != NULL && prop->parent->link_type != LINK_TYPE_BOOKMARK_FOLDER) ? uc_utils_replace (prop->parent->url, "&", "&") : g_strdup ("-"); url = uc_utils_replace (prop->url, "&", "&"); lm_date = g_hash_table_lookup (prop->header, UC_LAST_MODIFIED); if (lm_date == NULL) lm_date = "-"; sc = uc_application_get_status_code_properties (g_hash_table_lookup (prop->header, UC_HEADER_STATUS)); gdk_color_parse (sc->color, &color); gtk_widget_modify_bg (w, GTK_STATE_NORMAL, &color); widget = WGET ("tt_image"); gtk_image_set_from_file (GTK_IMAGE (widget), uc_check_get_link_type_icon_path (prop->link_type, prop->protocol)); widget = WGET ("tt_type"); str = g_strdup_printf ("%s", uc_check_get_link_type_label (prop->link_type)); gtk_label_set_markup (GTK_LABEL (widget), str); g_free (str), str = NULL; widget = WGET ("tt_label"); str = g_strdup_printf (_("Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s"), sc->message, url, parent_url, lm_date); gtk_label_set_markup (GTK_LABEL (widget), str); g_free (str), str = NULL; g_free (parent_url), parent_url = NULL; g_free (url), url = NULL; gtk_window_get_size (GTK_WINDOW (w), &pw, &ph); gtk_window_get_position (GTK_WINDOW (w), &wx, &wy); gtk_window_move (GTK_WINDOW (w), wx, wy + (ph / 2) + 10); gtk_widget_show_all (w); } } else if (uc_tooltips_main_get_last_id () != uc_tooltips_main_get_current_id ()) { uc_tooltips_main_set_active (FALSE); uc_tooltips_main_destroy (); } return TRUE; } /** * uc_tooltips_main_get_active: * * Check if a tooltip is being displayed. * * Returns: %TRUE if a tooltip is being displayed. */ gboolean uc_tooltips_main_get_active (void) { return uc_tooltips_main.active; } /** * uc_tooltips_main_set_active: * @value: %TRUE if a tooltip is active. * * Tell if a tooltip is active or not. */ void uc_tooltips_main_set_active (const gboolean value) { uc_tooltips_main.active = value; } /** * uc_tooltips_main_get_current_id: * * Get the current id of a #UCLinkProperties object currently displayed * in a tooltip. * * Returns: Id of the #UCLinkProperties object currently displayed * in the tooltip. */ guint32 uc_tooltips_main_get_current_id (void) { return uc_tooltips_main.current_id; } /** * uc_tooltips_main_set_current_id: * @id: Id of the #UCLinkProperties object currently displayed in the tooltip. * * Tell the id of the #UCLinkProperties object currently displayed in * the tooltip. */ void uc_tooltips_main_set_current_id (const guint32 id) { uc_tooltips_main.current_id = id; } /** * uc_tooltips_main_get_last_id: * * Get the id of the #UCLinkProperties object previously displayed in * the tooltip. * * Returns: The last #UCLinkProperties id. */ guint32 uc_tooltips_main_get_last_id (void) { return uc_tooltips_main.last_id; } /** * uc_tooltips_main_set_last_id: * @id: #UCLinkProperties id to set. * * Set the id of the #UCLinkProperties object previously displayed in * the tooltip. */ void uc_tooltips_main_set_last_id (const guint32 id) { uc_tooltips_main.last_id = id; } /** * uc_tooltips_main_set_mouse_coord: * @x: X mouse coord. * @y: Y mouse coord. * * Set the current mouse coord. */ void uc_tooltips_main_set_mouse_coord (const gint32 x, const gint32 y) { uc_tooltips_main.x = x; uc_tooltips_main.y = y; } /** * uc_tooltips_main_destroy: * * Destroy a tooltip window. */ void uc_tooltips_main_destroy (void) { if (treeview_tooltip != NULL && GTK_IS_WIDGET (treeview_tooltip)) gtk_widget_hide (treeview_tooltip); } /** * uc_tooltips_main_get_mouse_coord: * @x: X mouse coord. to be set. * @y: Y mouse coord. to be set. * * Get the mouse coord. @X and @Y parameters are modified. */ void uc_tooltips_main_get_mouse_coord (gint32 * x, gint32 * y) { if (x != NULL) *x = uc_tooltips_main.x; if (y != NULL) *y = uc_tooltips_main.y; } /** * uc_tooltips_main_get_frozen: * * The tooltips display is "frozen" when the mouse is out of the main * tree view. * * Returns: %TRUE if tooltips display must be "frozen". */ gboolean uc_tooltips_main_get_frozen (void) { return uc_tooltips_main.out; } /** * uc_tooltips_main_set_frozen: * @value: %TRUE is the mouse is out of the main tree view. * * The tooltips display is "frozen" when the mouse is out of the main * tree view. */ void uc_tooltips_main_set_frozen (const gboolean value) { uc_tooltips_main.out = value; } gurlchecker-0.13.1/src/project.c0000644000175000017500000030342411345765242013433 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "application.h" #include "check.h" #include "html_parser.h" #include "report.h" #include "lists.h" #include "utils.h" #include "url.h" #include "bookmarks.h" #include "cookies.h" #include "project.h" struct { guint32 id; gchar *title; gchar *description; guint tooltips_delay; UCProjectType type; G_CONST_RETURN gchar *local_charset; gboolean check_is_current; gboolean check_is_main; gboolean save; gboolean save_bookmarks; gchar *url; gchar *bookmarks_file; UCBookmarksType bookmarks_type; gchar *report_export_path; gchar *current_host; gchar *current_port; guint check_wait; guint depth_level; guint timeouts_blocked; gchar *browser_path; gchar *working_path; gchar *cache_name; gboolean proto_file_is_error; gboolean proto_file_check; gboolean proto_mailto; gboolean cookies_accept; gboolean cookies_warn_added; gboolean cookies_warn_updated; gboolean cookies_warn_deleted; gboolean proto_ftp; gboolean passive_ftp; gboolean proto_https; gboolean proto_mailto_check_mx; gboolean check_chroot; gboolean limit_local; gboolean speed_check; gboolean use_proxy; gchar *proxy_host; guint proxy_port; gchar *chroot_path; gboolean images_content; gboolean archives_content; guint check_timeout; gboolean prompt_auth; gboolean w3c_checks; gboolean w3c_checks_html; gchar *w3c_html_level; gboolean w3c_checks_css; gboolean security_checks; gboolean security_checks_bad_extensions; gboolean security_checks_exclude_images; gboolean security_checks_virii; gboolean export_labels; gboolean export_numbering; gboolean export_external; gboolean export_ip; gboolean debug_mode; gboolean dump_properties; gchar *reject_images; gchar *reject_documents; gchar *html_extensions; gchar *css_extensions; gchar *virii_extensions; gchar *bad_extensions; gchar **reject_directories; gchar **reject_domains; gboolean auth_save; gboolean no_urls_args; gchar *auth_line; GHashTable *cookies; } static project; /* * struct containing path for "project type" * images */ struct { UCProjectType type; gchar *icon_file; } static uc_project_type_icon[] = { {UC_PROJECT_TYPE_WEB_SITE, UC_PIXMAPS_DIR "/menu_new_web_site.png"}, {UC_PROJECT_TYPE_LOCAL_FILE, UC_PIXMAPS_DIR "/menu_new_local_file.png"}, {UC_PROJECT_TYPE_BOOKMARKS, UC_PIXMAPS_DIR "/menu_new_bookmarks_file.png"} }; static GList *uc_project_projects_list = NULL; /* this flag is TRUE when speed up check option is active * and first page have not yet been retreived */ static gboolean uc_project_speed_check_set_download_content_value = TRUE; static gchar *uc_project_xml_filters_get_value (xmlDocPtr doc, xmlNodePtr cur); static void uc_project_xml_filters_tag (xmlDocPtr doc, xmlNodePtr cur); static void uc_project_serialize_filters (xmlTextWriterPtr writer); static void uc_project_serialize_header_cb (gpointer key, gpointer value, gpointer data); static void uc_project_serialize_header (xmlTextWriterPtr writer, GHashTable * header); static void uc_project_serialize_checked_links (xmlTextWriterPtr writer, GList * list); static void uc_project_serialize_tags (xmlTextWriterPtr writer, UCHTMLTag * main_tag, GList * tags); static guint uc_project_get_new_project_id (void); static void uc_project_projects_list_free (void); static void uc_project_projects_list_node_free (UCProjectProjects **pl); static UCProjectProjects *uc_project_projects_list_lookup_by_uid (const gint id); static GList *uc_project_xml_get_tags (const gchar * docname); static GList *uc_project_xml_parse_project (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_project_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_website_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_page_tag (UCLinkProperties * parent, GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_tags_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_tag_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static void uc_project_xml_properties_tag (UCLinkProperties * prop, xmlDocPtr doc, xmlNodePtr cur); static GHashTable *uc_project_xml_header_tag (GHashTable * table, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_similar_links_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_bad_extensions_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur); static GList *uc_project_xml_childs_tag (UCLinkProperties * prop, GList * list, xmlDocPtr doc, xmlNodePtr cur); static void uc_project_xml_dispatch_links (UCLinkProperties * prop); static void uc_project_xml_report_tag (xmlDocPtr doc, xmlNodePtr cur); static void uc_project_projects_list_delete (const gint32 id); static void uc_project_general_settings_create_default (void); static void uc_project_proxy_init (void); static void uc_project_already_checked_links_append_all (GList * list); static void uc_project_xml_write_attribute (xmlTextWriterPtr writer, const gchar * name, gchar * strval, const guint numval, const gboolean yesno); static void uc_project_serialize_similar_links (xmlTextWriterPtr writer, GList * similar_links); static void uc_project_serialize_bad_extensions (xmlTextWriterPtr writer, GList * bad_extensions); static void uc_project_xml_write_element (xmlTextWriterPtr writer, const gchar * name, gchar * strval, const guint numval); static GList *uc_project_xml_load_links (const UCProjectProjects * p); /** * uc_project_get_type_icon: * @project_type: a #UCProjectType type. * * Returns the corresponding icon for a given link type. * * Returns: A #GdkPixbuf icon. */ GdkPixbuf * uc_project_get_type_icon (const UCProjectType project_type) { guint i = 0; for (i = 0; i < UC_PROJECT_TYPES_LEN - 1; i++) if (uc_project_type_icon[i].type == project_type) return gdk_pixbuf_new_from_file (uc_project_type_icon[i].icon_file, NULL); return gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/list_unknown.png", NULL); } /** * uc_project_delete: * @id: id of the project to delete. * * Delete a gurlchecker project. */ void uc_project_delete (const gint32 id) { GtkWidget *widget = NULL; GtkTextBuffer *text_buffer = NULL; gchar *path = NULL; GtkTreeIter iter; /* delete item on list */ uc_project_projects_list_delete (id); /* delete associated files and dirs on disk */ path = g_strdup_printf ("%s/projects/%u/project.xml", uc_project_get_working_path (), id); unlink (path); g_free (path), path = NULL; path = g_strdup_printf ("%s/projects/%u/settings.xml", uc_project_get_working_path (), id); unlink (path); g_free (path), path = NULL; path = g_strdup_printf ("%s/projects/%u/documents/", uc_project_get_working_path (), id); uc_utils_rmfiles (path); rmdir (path); g_free (path), path = NULL; path = g_strdup_printf ("%s/projects/%u/", uc_project_get_working_path (), id); rmdir (path); g_free (path), path = NULL; /* save new projects XML file */ uc_project_save_index (); widget = WGET ("opd_treeview"); if (uc_application_treeview_get_selected_iter (GTK_TREE_VIEW (widget), &iter)) { gtk_list_store_remove (GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (widget))), &iter); /* reset properties display */ widget = WGET ("opd_dates"); gtk_label_set_text (GTK_LABEL (widget), "\n"); widget = WGET ("opd_location"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, "", -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); widget = WGET ("opd_title"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, "", -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); widget = WGET ("opd_description"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, "", -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); } /* id we are deleting the current project, * clean UI */ if (id == uc_project_get_id ()) uc_application_init (NULL, NULL, NULL, FALSE); } static void uc_project_already_checked_links_append_all (GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL) { gchar *normalized_url = NULL; UCLinkProperties *prop = (UCLinkProperties *) item->data; normalized_url = uc_url_normalize (uc_project_get_current_host (), (prop->parent != NULL) ? prop->parent->path : "", prop->url); prop->normalized_url = normalized_url; uc_lists_already_checked_links_append (normalized_url, prop); if (prop->childs != NULL) uc_project_already_checked_links_append_all (prop->childs); item = g_list_next (item); } } /** * uc_project_open: * @id: id of the project to open. * * Open a existant gurlchecker project. * * See: uc_project_xml_load_links (), * uc_project_xml_load_settings () * * Returns: %TRUE if the project have been open correctly. */ gboolean uc_project_open (const gint32 id) { UCProjectProjects *p = NULL; gchar *tmp = NULL; gchar *path = NULL; gchar *path2 = NULL; GtkWidget *widget = NULL; GtkTreeIter iter; uc_project_new (); WSENS ("menu_bar", FALSE); WSENS ("tool_bar", FALSE); uc_application_draw_main_frames (); UC_UPDATE_UI; UC_GET_WIDGET ("urls_list", WGET ("main_window"), widget); treeview = GTK_TREE_VIEW (widget); /* open project and load XML elements */ p = uc_project_projects_list_lookup_by_uid (id); /* load specific settings for this new project */ uc_project_xml_load_settings (p); /* status bar message */ tmp = g_strdup_printf (_("Loading [%s] project..."), p->title); uc_application_set_status_bar (0, tmp); g_free (tmp), tmp = NULL; UC_UPDATE_UI; /* load links */ uc_lists_checked_links_set (uc_project_xml_load_links (p)); /* copy project files in the current cache * file */ path = g_strconcat (uc_project_get_working_path (), "/", uc_project_get_cache_name (), NULL); path2 = g_strdup_printf ("%s/projects/%u/documents/", uc_project_get_working_path (), uc_project_get_id ()); uc_utils_copy_files (path2, path); g_free (path2), path2 = NULL; g_free (path), path = NULL; // rebuild already checked global list and normalized_url field // (this one for each page) uc_project_already_checked_links_append_all (uc_lists_checked_links_get ()); /* build tree view and display it */ treestore = gtk_tree_store_new (N_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); UC_DISPLAY_SET_ALL; uc_check_display_list (uc_lists_checked_links_get (), NULL, iter); gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (treestore)); uc_application_build_url_treeview (); /* activate some menu items */ /* FIXME * for the moment we are not able to manage projects * for bookmarks files... */ WSENS ("mwm_project_properties", !uc_project_get_check_is_bookmarks ()); WSENS ("mwm_refresh_all", TRUE); WSENS ("mwm_refresh_main_page", !uc_project_get_check_is_bookmarks ()); WSENS ("mwm_delete_project", TRUE); WSENS ("mwm_find", TRUE); WSENS ("mwm_display", TRUE); WSENS ("mwm_report_export", TRUE); #ifndef ENABLE_GNUTLS if (strstr (p->location, UC_PROTOCOL_HTTPS)) WSENS ("mwm_refresh_main_page", FALSE); #endif #ifdef ENABLE_CLAMAV WSENS ("mwm_display_security_alerts", !uc_project_get_speed_check ()); #endif uc_report_display_update (); /* main title */ tmp = g_strconcat ("gURLChecker ", UC_VERSION, " - ", p->title, " [", p->location, "]", NULL); gtk_window_set_title (GTK_WINDOW (WGET ("main_window")), tmp); g_free (tmp), tmp = NULL; widget = WGET ("mw_label_ellapsed_time"); gtk_label_set_markup (GTK_LABEL (widget), ""); uc_application_set_status_bar (0, ""); WSENS ("menu_bar", TRUE); WSENS ("tool_bar", TRUE); widget = WGET ("mw_project_type"); if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) gtk_label_set_markup (GTK_LABEL (widget), _("[Local file] Page information")); else gtk_label_set_markup (GTK_LABEL (widget), _("[Web site] Page information")); return TRUE; } /** * uc_project_treeview_get_selected_row_id: * * Identify the project corresponding to the currently selected row * and return its id. * * Returns: id of the project. */ gint uc_project_treeview_get_selected_row_id (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreeSelection *select = NULL; GtkWidget *widget = NULL; gint32 ret = -1; widget = WGET ("opd_treeview"); select = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); if (select == NULL) return ret; if (gtk_tree_selection_get_selected (select, &model, &iter)) gtk_tree_model_get (model, &iter, 0, &ret, -1); return ret; } /** * uc_project_projects_list_delete: * @id: id of a project. * * Delete a project from the internal project's list. */ static void uc_project_projects_list_delete (const gint32 id) { UCProjectProjects *pl = NULL; pl = uc_project_projects_list_lookup_by_uid (id); if (pl != NULL) uc_project_projects_list_node_free (&pl); } /** * uc_project_projects_list_lookup_by_uid: * @id: id of a project. * * Lookup for a project in the internal project's list and return * the corresponding #UCProjectProjects node. * * Returns: The project object. */ static UCProjectProjects * uc_project_projects_list_lookup_by_uid (const gint32 id) { GList *item = NULL; if (uc_project_projects_list == NULL) uc_project_projects_list_load (); item = g_list_first (uc_project_get_projects_list ()); while (item != NULL) { UCProjectProjects *pl = (UCProjectProjects *) item->data; if (pl->id == id) return pl; item = g_list_next (item); } return NULL; } /** * uc_project_display_informations: * @treeview: the treeview where projects are listed. * * Retreive the currently selected project on the list and display its * informations in the project's dialog. */ void uc_project_display_informations (GtkTreeView * treeview) { gint32 id = 0; UCProjectProjects *pl = NULL; GtkWidget *widget = NULL; GtkTextBuffer *text_buffer = NULL; gchar *tmp = NULL; gchar creation_date[UC_BUFFER_DATE_LEN + 1] = { 0 }; gchar update_date[UC_BUFFER_DATE_LEN + 1] = { 0 }; id = uc_project_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } pl = uc_project_projects_list_lookup_by_uid (id); strftime (creation_date, UC_BUFFER_DATE_LEN, "%Y-%m-%d", localtime (&pl->create)); strftime (update_date, UC_BUFFER_DATE_LEN, "%Y-%m-%d", localtime (&pl->update)); widget = WGET ("opd_dates"); tmp = g_strdup_printf (_("Created on %s\n" "Updated on %s"), creation_date, update_date); gtk_label_set_markup (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; widget = WGET ("opd_location"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, pl->location, -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); widget = WGET ("opd_title"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, pl->title, -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); widget = WGET ("opd_description"); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (text_buffer, pl->description, -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), text_buffer); tmp = g_strdup_printf ("[%s], %s", pl->title, pl->location); uc_application_set_status_bar (0, tmp); g_free (tmp), tmp = NULL; } /** * uc_project_save_properties: * * Save properties for the current project. * * Returns: %TRUE if all required properties for a project have been * enter. */ gboolean uc_project_save_properties (void) { GtkWidget *widget = NULL; gchar *tmp = NULL; GtkTextIter start; GtkTextIter end; GtkTextBuffer *buffer = NULL; widget = WGET ("pid_title"); tmp = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); if (tmp == NULL || strlen (g_strstrip (tmp)) == 0) { uc_application_dialog_show (_("Please, enter a title for the current " "project."), GTK_MESSAGE_ERROR); g_free (tmp), tmp = NULL; return FALSE; } g_free (tmp), tmp = NULL; uc_project_set_title (gtk_entry_get_text (GTK_ENTRY (widget))); widget = WGET ("pid_description"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_get_bounds (buffer, &start, &end); tmp = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); uc_project_set_description (tmp); g_free (tmp), tmp = NULL; gtk_widget_hide (WGET ("project_information_dialog")); if (!uc_project_get_check_is_bookmarks ()) { uc_project_set_save (TRUE); WSENS ("mwm_delete_project", TRUE); } return TRUE; } /** * uc_project_serialize_similar_links: * @writer: #xmlTextWriterPtr from libxml2 API. * @similar_links: slimilar links list. * * Save nodes of the "similar links" internal list in XML format on * the disk. */ static void uc_project_serialize_similar_links (xmlTextWriterPtr writer, GList * similar_links) { GList *item = NULL; xmlTextWriterStartElement (writer, BAD_CAST "similar_links"); item = g_list_first (similar_links); while (item != NULL) { uc_project_xml_write_element (writer, "item", (gchar *) item->data, 0); item = g_list_next (item); } xmlTextWriterEndElement (writer); } /** * uc_project_serialize_bad_extensions: * @writer: #xmlTextWriterPtr from libxml2 API. * @bad_extensions: Bad extensions list. * * Save nodes of the "Bad extensions" internal list in XML format on * the disk. */ static void uc_project_serialize_bad_extensions (xmlTextWriterPtr writer, GList * bad_extensions) { GList *item = NULL; xmlTextWriterStartElement (writer, BAD_CAST "bad_extensions"); item = g_list_first (bad_extensions); while (item != NULL) { uc_project_xml_write_element (writer, "item", (gchar *) item->data, 0); item = g_list_next (item); } xmlTextWriterEndElement (writer); } /** * uc_project_serialize_tags: * @writer: #xmlTextWriterPtr from libxml2 API. * @main_tag: main tag (link node). * @tags: list of the main tag childs. * * Save the tag and all its childs in XML format on the disk. * A #UCHTMLTag tag contains properties of a link. */ static void uc_project_serialize_tags (xmlTextWriterPtr writer, UCHTMLTag * main_tag, GList * tags) { GList *item = NULL; xmlTextWriterStartElement (writer, BAD_CAST "tag"); if (main_tag != NULL) { uc_project_xml_write_attribute (writer, "depth", NULL, main_tag->depth, FALSE); uc_project_xml_write_attribute (writer, "type", NULL, main_tag->type, FALSE); uc_project_xml_write_attribute (writer, "label", main_tag->label, 0, FALSE); uc_project_xml_write_attribute (writer, "value", main_tag->value, 0, FALSE); } xmlTextWriterEndElement (writer); xmlTextWriterStartElement (writer, BAD_CAST "tags"); item = g_list_first (tags); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; xmlTextWriterStartElement (writer, BAD_CAST "tag"); uc_project_xml_write_attribute (writer, "depth", NULL, tag->depth, FALSE); uc_project_xml_write_attribute (writer, "type", NULL, tag->type, FALSE); uc_project_xml_write_attribute (writer, "label", tag->label, 0, FALSE); uc_project_xml_write_attribute (writer, "value", tag->value, 0, FALSE); xmlTextWriterEndElement (writer); item = g_list_next (item); } xmlTextWriterEndElement (writer); } static void uc_project_serialize_header_cb (gpointer key, gpointer value, gpointer data) { xmlTextWriterPtr writer = data; xmlTextWriterStartElement (writer, BAD_CAST "item"); uc_project_xml_write_attribute (writer, "name", (gchar *) key, 0, FALSE); uc_project_xml_write_attribute (writer, "value", (gchar *) value, 0, FALSE); xmlTextWriterEndElement (writer); } /** * uc_project_serialize_header: * @writer: #xmlTextWriterPtr from libxml2 API. * @header: HTTP header to save (a #GHashTable). * * Save HTTP header in XML format on the disk. */ static void uc_project_serialize_header (xmlTextWriterPtr writer, GHashTable * header) { xmlTextWriterStartElement (writer, BAD_CAST "header"); g_hash_table_foreach ((gpointer) header, uc_project_serialize_header_cb, writer); xmlTextWriterEndElement (writer); } /** * uc_project_serialize_filters: * @writer: #xmlTextWriterPtr from libxml2 API. * * gurlchecker URLs filters. they are saved in XML format on the disk. */ static void uc_project_serialize_filters (xmlTextWriterPtr writer) { gchar **tmp = NULL; gchar *tmp1 = NULL; guint size = 0; guint i = 0; xmlTextWriterStartElement (writer, BAD_CAST "filters"); xmlTextWriterStartElement (writer, BAD_CAST "directories"); uc_project_get_reject_directories (&tmp, &size); for (i = 0; i < size; i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); xmlTextWriterStartElement (writer, BAD_CAST "domains"); uc_project_get_reject_domains (&tmp, &size); for (i = 0; i < size; i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); xmlTextWriterStartElement (writer, BAD_CAST "documents"); tmp1 = uc_project_get_reject_documents (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterStartElement (writer, BAD_CAST "images"); tmp1 = uc_project_get_reject_images (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterStartElement (writer, BAD_CAST "virii_extensions"); tmp1 = uc_project_get_security_virii_extensions (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterStartElement (writer, BAD_CAST "html_extensions"); tmp1 = uc_project_get_w3c_html_extensions (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterStartElement (writer, BAD_CAST "css_extensions"); tmp1 = uc_project_get_w3c_css_extensions (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterStartElement (writer, BAD_CAST "bad_extensions"); tmp1 = uc_project_get_security_bad_extensions (); tmp = g_strsplit (tmp1, ",", -1); for (i = 0; i < uc_utils_vector_length (tmp); i++) uc_project_xml_write_element (writer, "item", tmp[i], 0); xmlTextWriterEndElement (writer); g_strfreev (tmp), tmp = NULL; xmlTextWriterEndElement (writer); } /** * uc_project_serialize_checked_links: * @writer: #xmlTextWriterPtr from libxml2 API. * @list: a #GList of already checked links. * * Save internal list of "already checked links" in XML format on the disk. */ static void uc_project_serialize_checked_links (xmlTextWriterPtr writer, GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; xmlTextWriterStartElement (writer, BAD_CAST "page"); uc_project_xml_write_attribute (writer, "id", NULL, prop->uid, FALSE); uc_project_xml_write_attribute (writer, "pid", NULL, (prop->parent) ? prop->parent->uid : 0, FALSE); uc_project_xml_write_attribute (writer, "depth", NULL, prop->depth_level, FALSE); uc_project_xml_write_attribute (writer, "parsable", NULL, prop->is_parsable, TRUE); uc_project_xml_write_attribute (writer, "downloadable", NULL, prop->is_downloadable, TRUE); uc_project_xml_write_attribute (writer, "checked", NULL, prop->checked, TRUE); uc_project_xml_write_attribute (writer, "virii", NULL, prop->virii, TRUE); uc_project_xml_write_attribute (writer, "virname", (prop->virname == NULL) ? "" : prop->virname, 0, FALSE); uc_project_xml_write_attribute (writer, "user_action", (prop->user_action == NULL) ? "" : prop->user_action, 0, FALSE); uc_project_xml_write_attribute (writer, "w3c_valid", NULL, prop->w3c_valid, TRUE); uc_project_xml_write_attribute (writer, "title", (prop->label == NULL) ? "" : prop->label, 0, FALSE); uc_project_xml_write_attribute (writer, "href", prop->url, 0, FALSE); uc_project_xml_write_attribute (writer, "type", NULL, prop->link_type, FALSE); uc_project_xml_write_attribute (writer, "original_value", prop->link_value, 0, FALSE); uc_project_xml_write_attribute (writer, "current_path", prop->current_path, 0, FALSE); uc_project_xml_write_attribute (writer, "domain", prop->domain, 0, FALSE); xmlTextWriterStartElement (writer, BAD_CAST "properties"); uc_project_serialize_header (writer, prop->header); xmlTextWriterStartElement (writer, BAD_CAST "url"); uc_project_xml_write_attribute (writer, "proto", prop->protocol, 0, FALSE); uc_project_xml_write_attribute (writer, "ip_addr", prop->ip_addr, 0, FALSE); uc_project_xml_write_attribute (writer, "host", prop->h_name, 0, FALSE); uc_project_xml_write_attribute (writer, "port", prop->port, 0, FALSE); uc_project_xml_write_attribute (writer, "path", prop->path, 0, FALSE); uc_project_xml_write_attribute (writer, "args", prop->args, 0, FALSE); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); uc_project_serialize_tags (writer, (UCHTMLTag *) prop->tag, prop->tags); uc_project_serialize_similar_links (writer, prop->similar_links_parents); uc_project_serialize_bad_extensions (writer, prop->bad_extensions); xmlTextWriterStartElement (writer, BAD_CAST "childs"); if (prop->childs) uc_project_serialize_checked_links (writer, prop->childs); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); item = g_list_next (item); } } /** * uc_project_save_index: * * Save the gurlchecker project's list in XML format on the disk. */ void uc_project_save_index (void) { gchar *path = NULL; GList *item = NULL; gchar *tmp = NULL; xmlTextWriterPtr writer = NULL; xmlDocPtr doc = NULL; path = g_strconcat (uc_project_get_working_path (), "/projects.xml", NULL); writer = xmlNewTextWriterDoc (&doc, 0); xmlTextWriterStartDocument (writer, NULL, "UTF-8", NULL); xmlTextWriterStartElement (writer, BAD_CAST "projects"); item = g_list_first (uc_project_get_projects_list ()); while (item != NULL) { UCProjectProjects *pl = (UCProjectProjects *) item->data; xmlTextWriterStartElement (writer, BAD_CAST "project"); uc_project_xml_write_attribute (writer, "id", NULL, pl->id, FALSE); uc_project_xml_write_attribute (writer, "type", NULL, pl->type, FALSE); tmp = g_strdup_printf ("%f", (gdouble) pl->create); xmlTextWriterWriteAttribute (writer, BAD_CAST "create", BAD_CAST (xmlChar *) tmp); g_free (tmp), tmp = NULL; tmp = g_strdup_printf ("%f", (gdouble) pl->update); xmlTextWriterWriteAttribute (writer, BAD_CAST "update", BAD_CAST (xmlChar *) tmp); g_free (tmp), tmp = NULL; uc_project_xml_write_element (writer, "location", pl->location, 0); uc_project_xml_write_element (writer, "title", pl->title, 0); uc_project_xml_write_element (writer, "description", pl->description, 0); xmlTextWriterEndElement (writer); item = g_list_next (item); } xmlTextWriterEndElement (writer); xmlTextWriterEndDocument (writer); xmlFreeTextWriter (writer), writer = NULL; xmlSaveFormatFileEnc (path, doc, "UTF-8", 1); xmlFreeDoc (doc), doc = NULL; g_free (path), path = NULL; } /** * uc_project_general_settings_create_default: * * Create main gurlchecker default settings in XML format on the disk. * Used when gurlchecker is used for the first time. */ static void uc_project_general_settings_create_default (void) { xmlTextWriterPtr writer = NULL; xmlDocPtr doc = NULL; gchar *path = NULL; path = g_strdup_printf ("%s/settings.xml", uc_project_get_working_path ()); writer = xmlNewTextWriterDoc (&doc, 0); xmlTextWriterStartDocument (writer, NULL, "UTF-8", NULL); xmlTextWriterStartElement (writer, BAD_CAST "projects"); xmlTextWriterStartElement (writer, BAD_CAST "project"); uc_project_xml_write_attribute (writer, "working_path", uc_project_get_working_path (), 0, FALSE); uc_project_xml_write_attribute (writer, "cookies_accept", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "cookies_warn_added", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "cookies_warn_updated", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "cookied_warn_deleted", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "proto_file_is_error", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "proto_file_check", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "proto_mailto", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "proto_mailto_check_mx", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "proto_https", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "proto_ftp", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "passive_ftp", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "check_chroot", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "limit_local", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "no_urls_args", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "use_proxy", NULL, uc_project_get_use_proxy (), TRUE); uc_project_xml_write_attribute (writer, "proxy_host", uc_project_get_proxy_host (), 0, FALSE); uc_project_xml_write_attribute (writer, "proxy_port", NULL, uc_project_get_proxy_port (), FALSE); uc_project_xml_write_attribute (writer, "chroot_path", "", 0, FALSE); uc_project_xml_write_attribute (writer, "download_images_content", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "download_archives_content", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "check_timeout", NULL, UC_CHECK_TIMEOUT_DEFAULT, FALSE); uc_project_xml_write_attribute (writer, "depth_level", NULL, UC_MAX_DEPTH_LEVEL, FALSE); uc_project_xml_write_attribute (writer, "check_wait", NULL, UC_CHECK_WAIT_DEFAULT, FALSE); uc_project_xml_write_attribute (writer, "timeouts_blocked", NULL, UC_TIMEOUTS_BLOCKED_DEFAULT, FALSE); uc_project_xml_write_attribute (writer, "prompt_auth", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "w3c_checks", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "w3c_checks_html", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "w3c_html_level", "warnings", 0, FALSE); uc_project_xml_write_attribute (writer, "w3c_checks_css", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "security_checks", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "security_checks_bad_extensions", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "security_checks_exclude_images", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "security_checks_virii", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "export_labels", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "export_numbering", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "export_external", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "export_ip", NULL, 1, TRUE); uc_project_xml_write_attribute (writer, "debug_mode", NULL, 0, TRUE); uc_project_xml_write_attribute (writer, "dump_properties", NULL, 0, TRUE); uc_project_serialize_filters (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndDocument (writer); xmlFreeTextWriter (writer), writer = NULL; xmlSaveFormatFileEnc (path, doc, "UTF-8", 1); xmlFreeDoc (doc), doc = NULL; g_free (path), path = NULL; } /** * uc_project_xml_write_attribute: * @writer: #xmlTextWriterPtr from libxml2 API. * @name: name of the attribute. * @strval: string value of the attribute @name if it is a string. * %NULL otherwise. * @numval: number value of the attribute @name if it is a numeric. * @yesno: if the attribute @name is a boolean, %TRUE or %FALSE. * * Write a XML attribute depending of its type (strin/number). */ static void uc_project_xml_write_attribute (xmlTextWriterPtr writer, const gchar * name, gchar * strval, const guint numval, const gboolean yesno) { gchar *tmp = NULL; if (strval != NULL) tmp = uc_utils_to_utf8 (strval); else tmp = (yesno) ? g_strdup (((numval) ? "yes" : "no")) : g_strdup_printf ("%u", numval); xmlTextWriterWriteAttribute (writer, BAD_CAST (xmlChar *) name, BAD_CAST (xmlChar *) tmp); g_free (tmp), tmp = NULL; } /** * uc_project_xml_write_element: * @writer: #xmlTextWriterPtr from libxml2 API. * @name: name of the attribute. * @strval: string value of the attribute @name if it is a string. * %NULL otherwise. * @numval: number value of the attribute @name if it is a numeric. * * Write a XML element depending of its type (strin/number). */ static void uc_project_xml_write_element (xmlTextWriterPtr writer, const gchar * name, gchar * strval, const guint numval) { gchar *tmp = NULL; if (strval != NULL) tmp = uc_utils_to_utf8 (strval); else tmp = g_strdup_printf ("%u", numval); xmlTextWriterWriteElement (writer, BAD_CAST (xmlChar *) name, BAD_CAST (xmlChar *) tmp); g_free (tmp), tmp = NULL; } /** * uc_project_general_settings_save: * * Save the main gurlchecker settings in XML format on the disk. */ void uc_project_general_settings_save (void) { xmlTextWriterPtr writer = NULL; xmlDocPtr doc = NULL; gchar *tmp = NULL; gchar *path = NULL; path = g_strdup_printf ("%s/settings.xml", uc_project_get_working_path ()); writer = xmlNewTextWriterDoc (&doc, 0); xmlTextWriterStartDocument (writer, NULL, "UTF-8", NULL); xmlTextWriterStartElement (writer, BAD_CAST "projects"); xmlTextWriterStartElement (writer, BAD_CAST "project"); uc_project_xml_write_attribute (writer, "working_path", uc_project_get_working_path (), 0, FALSE); uc_project_xml_write_attribute (writer, "proto_file_is_error", NULL, uc_project_get_proto_file_is_error (), TRUE); uc_project_xml_write_attribute (writer, "cookies_accept", NULL, uc_project_get_cookies_accept (), TRUE); uc_project_xml_write_attribute (writer, "cookies_warn_added", NULL, uc_project_get_cookies_warn_added (), TRUE); uc_project_xml_write_attribute (writer, "cookies_warn_updated", NULL, uc_project_get_cookies_warn_updated (), TRUE); uc_project_xml_write_attribute (writer, "cookies_warn_deleted", NULL, uc_project_get_cookies_warn_deleted (), TRUE); uc_project_xml_write_attribute (writer, "proto_file_check", NULL, uc_project_get_proto_file_check (), TRUE); uc_project_xml_write_attribute (writer, "proto_mailto", NULL, uc_project_get_proto_mailto (), TRUE); uc_project_xml_write_attribute (writer, "proto_https", NULL, uc_project_get_proto_https (), TRUE); uc_project_xml_write_attribute (writer, "proto_ftp", NULL, uc_project_get_proto_ftp (), TRUE); uc_project_xml_write_attribute (writer, "passive_ftp", NULL, uc_project_get_passive_ftp (), TRUE); uc_project_xml_write_attribute (writer, "proto_mailto_check_mx", NULL, uc_project_get_proto_mailto_check_mx (), TRUE); uc_project_xml_write_attribute (writer, "check_chroot", NULL, uc_project_get_check_chroot (), TRUE); uc_project_xml_write_attribute (writer, "limit_local", NULL, uc_project_get_limit_local (), TRUE); uc_project_xml_write_attribute (writer, "no_urls_args", NULL, uc_project_get_no_urls_args (), TRUE); uc_project_xml_write_attribute (writer, "use_proxy", NULL, uc_project_get_use_proxy (), TRUE); uc_project_xml_write_attribute (writer, "proxy_host", uc_project_get_proxy_host (), 0, FALSE); uc_project_xml_write_attribute (writer, "proxy_port", NULL, uc_project_get_proxy_port (), FALSE); uc_project_xml_write_attribute (writer, "chroot_path", (tmp = uc_project_get_chroot_path ())? tmp : "", 0, FALSE); uc_project_xml_write_attribute (writer, "download_images_content", NULL, uc_project_get_download_images_content (), TRUE); uc_project_xml_write_attribute (writer, "download_archives_content", NULL, uc_project_get_download_archives_content (), TRUE); uc_project_xml_write_attribute (writer, "check_timeout", NULL, uc_project_get_check_timeout (), FALSE); uc_project_xml_write_attribute (writer, "depth_level", NULL, uc_project_get_depth_level (), FALSE); uc_project_xml_write_attribute (writer, "check_wait", NULL, uc_project_get_check_wait (), FALSE); uc_project_xml_write_attribute (writer, "timeouts_blocked", NULL, uc_project_get_timeouts_blocked (), FALSE); uc_project_xml_write_attribute (writer, "prompt_auth", NULL, uc_project_get_prompt_auth (), TRUE); uc_project_xml_write_attribute (writer, "security_checks", NULL, uc_project_get_security_checks ("any"), TRUE); uc_project_xml_write_attribute (writer, "security_checks_bad_extensions", NULL, uc_project_get_security_checks ("bad_extensions"), TRUE); uc_project_xml_write_attribute (writer, "security_checks_exclude_images", NULL, uc_project_get_security_checks ("exclude_images"), TRUE); uc_project_xml_write_attribute (writer, "security_checks_virii", NULL, uc_project_get_security_checks ("virii"), TRUE); uc_project_xml_write_attribute (writer, "w3c_checks", NULL, uc_project_get_w3c_checks ("any"), TRUE); uc_project_xml_write_attribute (writer, "w3c_checks_html", NULL, uc_project_get_w3c_checks ("html"), TRUE); uc_project_xml_write_attribute (writer, "w3c_html_level", (gchar *) uc_project_get_w3c_html_level (), 0, FALSE); uc_project_xml_write_attribute (writer, "w3c_checks_css", NULL, uc_project_get_w3c_checks ("css"), TRUE); uc_project_xml_write_attribute (writer, "export_labels", NULL, uc_project_get_export_labels (), TRUE); uc_project_xml_write_attribute (writer, "export_numbering", NULL, uc_project_get_export_numbering (), TRUE); uc_project_xml_write_attribute (writer, "export_external", NULL, uc_project_get_export_external (), TRUE); uc_project_xml_write_attribute (writer, "export_ip", NULL, uc_project_get_export_ip (), TRUE); uc_project_xml_write_attribute (writer, "debug_mode", NULL, uc_project_get_debug_mode (), TRUE); uc_project_xml_write_attribute (writer, "dump_properties", NULL, uc_project_get_dump_properties (), TRUE); uc_project_serialize_filters (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndDocument (writer); xmlFreeTextWriter (writer), writer = NULL; xmlSaveFormatFileEnc (path, doc, "UTF-8", 1); xmlFreeDoc (doc), doc = NULL; g_free (path), path = NULL; } void uc_project_report_save (void) { gchar *path = NULL; xmlTextWriterPtr writer = NULL; xmlDocPtr doc = NULL; path = g_strdup_printf ("%s/projects/%u/project.xml", uc_project_get_working_path (), uc_project_get_id ()); writer = xmlNewTextWriterDoc (&doc, 0); xmlTextWriterStartDocument (writer, NULL, "UTF-8", NULL); xmlTextWriterStartElement (writer, BAD_CAST "projects"); xmlTextWriterStartElement (writer, BAD_CAST "project"); xmlTextWriterStartElement (writer, BAD_CAST "website"); uc_project_xml_write_attribute (writer, "report_export_path", uc_project_get_report_export_path (), 0, FALSE); uc_project_xml_write_attribute (writer, "url", uc_project_get_url (), 0, FALSE); uc_project_xml_write_attribute (writer, "current_host", uc_project_get_current_host (), 0, FALSE); uc_project_xml_write_attribute (writer, "current_port", uc_project_get_current_port (), 0, FALSE); uc_project_serialize_checked_links (writer, uc_lists_checked_links_get ()); xmlTextWriterEndElement (writer); xmlTextWriterStartElement (writer, BAD_CAST "report"); xmlTextWriterStartElement (writer, BAD_CAST "links"); uc_project_xml_write_attribute (writer, "all", NULL, uc_report_get_alllinks (), FALSE); uc_project_xml_write_attribute (writer, "checked", NULL, uc_report_get_checkedlinks (), FALSE); uc_project_xml_write_attribute (writer, "bad", NULL, uc_report_get_badlinks (), FALSE); uc_project_xml_write_attribute (writer, "malformed", NULL, uc_report_get_malformedlinks (), FALSE); uc_project_xml_write_attribute (writer, "good", NULL, uc_report_get_goodlinks (), FALSE); uc_project_xml_write_attribute (writer, "timeout", NULL, uc_report_get_timedoutlinks (), FALSE); uc_project_xml_write_attribute (writer, "ignored", NULL, uc_report_get_ignoredlinks (), FALSE); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndElement (writer); xmlTextWriterEndDocument (writer); xmlFreeTextWriter (writer), writer = NULL; xmlSaveFormatFileEnc (path, doc, "UTF-8", 1); xmlFreeDoc (doc), doc = NULL; g_free (path), path = NULL; } gboolean uc_project_save_all (void) { if (uc_project_get_save () || uc_project_get_save_bookmarks ()) { gint res = 0; if (uc_project_get_save ()) res = uc_project_save (); else if (uc_project_get_save_bookmarks ()) res = uc_bookmarks_save_changes (); if (res == GTK_RESPONSE_YES || res == GTK_RESPONSE_NO) ; else return FALSE; } return TRUE; } /** * uc_project_save: * * Save the entire current project (settings, links etc.) in XML format * on the disk. * * Returns: %TRUE if project must be saved. */ gint uc_project_save (void) { gchar *path = NULL; gchar *path2 = NULL; time_t t; guint project_id = 0; gint res = 0; UCProjectProjects *node = NULL; if (uc_project_get_check_is_bookmarks ()) return uc_bookmarks_save_changes (); res = uc_application_dialog_yes_no_show (_("Save the current project ?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return res; if (strlen (uc_project_get_title ()) == 0 && !uc_application_project_information_dialog_show ()) return GTK_RESPONSE_CANCEL; uc_application_set_status_bar (0, _("Saving project...")); UC_UPDATE_UI; time (&t); project_id = uc_project_get_id (); if (project_id == 0) { node = g_new0 (UCProjectProjects, 1); node->id = uc_project_get_new_project_id (); node->type = uc_project_get_type (); node->create = t; node->update = t; node->location = (uc_project_get_check_is_bookmarks ()) ? g_strdup (uc_project_get_bookmarks_file ()) : g_strdup (uc_project_get_url ()); node->title = g_strdup (uc_project_get_title ()); node->description = g_strdup (uc_project_get_description ()); uc_project_projects_list = g_list_append (uc_project_projects_list, node); uc_project_set_id (node->id); } else { node = uc_project_projects_list_lookup_by_uid (project_id); g_free (node->title), node->title = NULL; g_free (node->description), node->description = NULL; node->title = g_strdup (uc_project_get_title ()); node->description = g_strdup (uc_project_get_description ()); node->update = t; } uc_project_save_index (); uc_project_general_settings_save (); path = g_strdup_printf ("%s/projects/%u/documents/", uc_project_get_working_path (), uc_project_get_id ()); uc_utils_mkdirs (path, TRUE); g_free (path), path = NULL; path = g_strdup_printf ("%s/settings.xml", uc_project_get_working_path ()); path2 = g_strdup_printf ("%s/projects/%u/settings.xml", uc_project_get_working_path (), uc_project_get_id ()); uc_utils_copy (path, path2); g_free (path2), path2 = NULL; g_free (path), path = NULL; uc_project_report_save (); path = g_strconcat (uc_project_get_working_path (), "/", uc_project_get_cache_name (), NULL); path2 = g_strdup_printf ("%s/projects/%u/documents/", uc_project_get_working_path (), uc_project_get_id ()); uc_utils_copy_files (path, path2); g_free (path), path = NULL; g_free (path2), path2 = NULL; uc_project_set_save (FALSE); uc_project_set_save_bookmarks (FALSE); WSENS ("mwm_report_export", TRUE); uc_application_set_status_bar (0, ""); UC_UPDATE_UI; return GTK_RESPONSE_YES; } /** * uc_project_projects_list_node_free: * @pl: #UCProjectProjects node of the project to free. * * Free a projects' list node. */ static void uc_project_projects_list_node_free (UCProjectProjects ** pl) { g_free ((*pl)->location), (*pl)->location = NULL; g_free ((*pl)->title), (*pl)->title = NULL; g_free ((*pl)->description), (*pl)->description = NULL; uc_project_projects_list = g_list_remove (uc_project_projects_list, (gpointer) *pl); g_free (*pl), *pl = NULL; } /** * uc_project_projects_list_free: * * Free the entire projects' list. */ static void uc_project_projects_list_free (void) { GList *item = NULL; if (uc_project_projects_list == NULL) return; item = g_list_first (uc_project_get_projects_list ()); while (item != NULL) { UCProjectProjects *pl = (UCProjectProjects *) item->data; item = g_list_next (item); uc_project_projects_list_node_free (&pl); } g_list_free (uc_project_projects_list), uc_project_projects_list = NULL; } /** * uc_project_projects_list_load: * * Load the projects' list. * * See: uc_project_xml_get_tags () */ void uc_project_projects_list_load (void) { gchar *path = NULL; if (uc_project_projects_list != NULL) uc_project_projects_list_free (); path = g_strconcat (uc_project_get_working_path (), "/projects.xml", NULL); uc_project_projects_list = uc_project_xml_get_tags (path); g_free (path), path = NULL; } /** * uc_project_get_projects_list: * * Return the gurlchecker projects' list. * * Returns: A #GList pointer on the internal projects' list. */ GList * uc_project_get_projects_list (void) { return uc_project_projects_list; } /** * uc_project_get_new_project_id: * * Return a new project id. * * Returns: The new id for the new project. */ static guint uc_project_get_new_project_id (void) { GList *item = NULL; guint max = 0; if (uc_project_projects_list == NULL) return 1; item = g_list_first (uc_project_get_projects_list ()); while (item != NULL) { UCProjectProjects *lp = (UCProjectProjects *) item->data; if (lp->id > max) max = lp->id; item = g_list_next (item); } return max + 1; } /** * uc_project_new: * @id: id of the project. * * Load a project and its properties from the disk. * * See: uc_project_projects_list_load () */ void uc_project_new (void) { uc_application_init (NULL, NULL, NULL, FALSE); } /** * uc_project_free: * @type: type of the project. * * Free internals lists and variables to prepare a new project. */ void uc_project_free (void) { g_strfreev (project.reject_directories), project.reject_directories = NULL; g_strfreev (project.reject_domains), project.reject_domains = NULL; g_free (project.reject_documents), project.reject_documents = NULL; g_free (project.reject_images), project.reject_images = NULL; g_free (project.html_extensions), project.html_extensions = NULL; g_free (project.css_extensions), project.css_extensions = NULL; g_free (project.virii_extensions), project.virii_extensions = NULL; g_free (project.bad_extensions), project.bad_extensions = NULL; g_free (project.browser_path), project.browser_path = NULL; g_free (project.description), project.description = NULL; g_free (project.title), project.title = NULL; g_free (project.url), project.url = NULL; g_free (project.bookmarks_file), project.bookmarks_file = NULL; g_free (project.report_export_path), project.report_export_path = NULL; g_free (project.current_host), project.current_host = NULL; g_free (project.current_port), project.current_port = NULL; g_free (project.working_path), project.working_path = NULL; g_free (project.cache_name), project.cache_name = NULL; g_free (project.w3c_html_level), project.w3c_html_level = NULL; g_free (project.proxy_host), project.proxy_host = NULL; g_free (project.auth_line), project.auth_line = NULL; g_free (project.chroot_path), project.chroot_path = NULL; uc_project_projects_list_free (); project.id = 0; project.local_charset = NULL; uc_project_set_save_bookmarks (FALSE); } /** * uc_project_get_browser_path: * * Check for the browser path and return it. * * Returns: The browser path (no new memory allocation). */ gchar * uc_project_get_browser_path (void) { gchar *browser = NULL; if (project.browser_path == NULL) { browser = uc_utils_get_gnome_browser_conf (); uc_project_set_browser_path (browser); g_free (browser), browser = NULL; } return project.browser_path; } /** * uc_project_get_type: * * Return the current project type. * * Returns: The current project type. */ UCProjectType uc_project_get_type (void) { return project.type; } /** * uc_project_get_save: * * Check if the project should be saved. * * Returns: %TRUE if the project should be saved. */ gboolean uc_project_get_save (void) { return project.save; } /** * uc_project_get_id: * * Return the id of the current project. * * Returns: id of the project. */ guint uc_project_get_id (void) { return project.id; } /** * uc_project_get_reject_directories: * @items: the vector to fill. * @item_size: the size to fill. * * Fill the @items vector with the directories to avoid during * the check (those directories will not be checked). * * There is no memory allocation. * * See: uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () */ void uc_project_get_reject_directories (gchar *** items, guint * item_size) { if (project.reject_directories != NULL) { *items = project.reject_directories; *item_size = uc_utils_vector_length (project.reject_directories); } else { *items = NULL; *item_size = 0; } } /** * uc_project_get_reject_domains: * @items: the vector to fill. * @item_size: the size to fill. * * Fill the @items vector with the domains to avoid during * the check (those domains will not be checked). * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () */ void uc_project_get_reject_domains (gchar *** items, guint * item_size) { if (project.reject_domains != NULL) { *items = project.reject_domains; *item_size = uc_utils_vector_length (project.reject_domains); } else { *items = NULL; *item_size = 0; } } /** * uc_project_get_security_virii_extensions: * * Return a string with comma separated extensions to scan during the check. * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_security_virii_extensions (void) { return (project.virii_extensions != NULL)? project.virii_extensions:UC_DEFAULT_SECURITY_VIRII_EXTENSIONS; } /** * uc_project_get_w3c_html_extensions: * * Return a string with comma separated extensions of HTML documents to * validate during the scan. * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_css_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_w3c_html_extensions (void) { return (project.html_extensions != NULL)? project.html_extensions:UC_DEFAULT_W3C_HTML_EXTENSIONS; } /** * uc_project_get_w3c_css_extensions: * * Return a string with comma separated extensions of CSS files to validate * during the scan. * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_w3c_css_extensions (void) { return (project.css_extensions != NULL)? project.css_extensions:UC_DEFAULT_W3C_CSS_EXTENSIONS; } /** * uc_project_get_reject_documents: * * Return a string with comma separated extensions to ignore during the scan. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_images (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_reject_documents (void) { if (project.reject_documents == NULL) uc_project_set_reject_documents (""); return project.reject_documents; } /** * uc_project_get_reject_images: * Return a string with comma separated extensions to ignore during the scan. * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_security_bad_extensions (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_reject_images (void) { if (project.reject_images == NULL) uc_project_set_reject_images (""); return project.reject_images; } /** * uc_project_get_security_bad_extensions: * * Return a string with comma separated extensions of files to search during * the security scan. * * There is no memory allocation. * * See: uc_project_get_reject_directories (), * uc_project_get_reject_domains (), * uc_project_get_reject_documents (), * uc_project_get_reject_images (), * uc_project_get_security_virii_extensions (), * uc_project_get_w3c_html_extensions (), * uc_project_get_w3c_css_extensions () * * Returns: A string with comma separated extensions. */ gchar * uc_project_get_security_bad_extensions (void) { return (project.bad_extensions != NULL)? project.bad_extensions:UC_DEFAULT_SECURITY_BAD_EXTENSIONS; } static void uc_project_proxy_init (void) { gchar *host = NULL; guint port = 0; uc_utils_get_gnome_proxy_conf (&host, &port); uc_project_set_use_proxy ((strlen (host) > 0)); if (uc_project_get_use_proxy ()) { uc_project_set_proxy_host (host); uc_project_set_proxy_port (port); } else { uc_project_set_proxy_host (""); uc_project_set_proxy_port (0); } g_free (host), host = NULL; } GHashTable * uc_project_get_cookies (void) { if (project.cookies == NULL) project.cookies = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); return project.cookies; } gchar * uc_project_get_title (void) { return (project.title) ? project.title : ""; } gchar * uc_project_get_description (void) { return (project.description) ? project.description : ""; } gboolean uc_project_get_save_bookmarks (void) { return project.save_bookmarks; } gboolean uc_project_get_save_project (void) { return project.save; } G_CONST_RETURN gchar * uc_project_get_local_charset (void) { return project.local_charset; } gboolean uc_project_get_speed_check (void) { return project.speed_check; } gboolean uc_project_get_check_is_current (void) { return project.check_is_current; } gboolean uc_project_get_check_is_main (void) { return project.check_is_main; } gboolean uc_project_get_check_is_bookmarks (void) { return (project.bookmarks_type != UC_BOOKMARKS_TYPE_NONE); } gchar * uc_project_get_url (void) { return project.url; } gchar * uc_project_get_bookmarks_file (void) { return project.bookmarks_file; } UCBookmarksType uc_project_get_bookmarks_type (void) { return project.bookmarks_type; } gchar * uc_project_get_report_export_path (void) { gchar *home = NULL; if (project.report_export_path == NULL) { home = getenv ("HOME"); g_assert (home != NULL); uc_project_set_report_export_path (home); } return project.report_export_path; } gchar * uc_project_get_current_host (void) { return project.current_host; } gchar * uc_project_get_current_port (void) { if (!project.current_port) uc_project_set_current_port (UC_URL_DEFAULT_PORT); return project.current_port; } guint uc_project_get_check_wait (void) { return project.check_wait; } guint uc_project_get_timeouts_blocked (void) { return project.timeouts_blocked; } guint uc_project_get_depth_level (void) { return project.depth_level; } gchar * uc_project_get_working_path (void) { gchar *home = NULL; if (project.working_path == NULL) { home = getenv ("HOME"); g_assert (home != NULL); home = g_strconcat (home, "/.gurlchecker", NULL); uc_project_set_working_path (home); g_free (home), home = NULL; } return project.working_path; } gchar * uc_project_get_cache_name (void) { gchar *cache = NULL; if (project.cache_name == NULL) { cache = g_strdup_printf ("cache/%s_%d", PACKAGE, getpid ()); uc_project_set_cache_name (cache); g_free (cache), cache = NULL; } return project.cache_name; } gboolean uc_project_get_proto_file_is_error (void) { return project.proto_file_is_error; } gboolean uc_project_get_proto_file_check (void) { return project.proto_file_check; } gboolean uc_project_get_cookies_accept (void) { return project.cookies_accept; } const gchar * uc_project_get_w3c_html_level (void) { if (!project.w3c_html_level) uc_project_set_w3c_html_level ("warnings"); return project.w3c_html_level; } gboolean uc_project_get_proto_mailto (void) { return project.proto_mailto; } gboolean uc_project_get_proto_https (void) { #ifdef ENABLE_GNUTLS return project.proto_https; #else return 0; #endif } gboolean uc_project_get_proto_ftp (void) { return project.proto_ftp; } gboolean uc_project_get_passive_ftp (void) { return project.passive_ftp; } gboolean uc_project_speed_check_get_download_content (void) { return (!uc_project_get_check_is_bookmarks ()) ? uc_project_speed_check_set_download_content_value : FALSE; } gboolean uc_project_get_cookies_warn_added (void) { return project.cookies_warn_added; } gboolean uc_project_get_cookies_warn_updated (void) { return project.cookies_warn_updated; } gboolean uc_project_get_cookies_warn_deleted (void) { return project.cookies_warn_deleted; } gboolean uc_project_get_proto_mailto_check_mx (void) { return project.proto_mailto_check_mx; } gboolean uc_project_get_check_chroot (void) { return project.check_chroot; } gboolean uc_project_get_limit_local (void) { return project.limit_local; } gboolean uc_project_get_use_proxy (void) { return project.use_proxy; } gchar * uc_project_get_proxy_host (void) { uc_project_proxy_init (); return project.proxy_host; } guint uc_project_get_proxy_port (void) { uc_project_proxy_init (); return project.proxy_port; } gchar * uc_project_get_auth_line (void) { return project.auth_line; } gchar * uc_project_get_chroot_path (void) { return project.chroot_path; } gboolean uc_project_get_no_urls_args (void) { return project.no_urls_args; } gboolean uc_project_get_download_images_content (void) { return project.images_content; } gboolean uc_project_get_download_archives_content (void) { return project.archives_content; } guint uc_project_get_check_timeout (void) { return project.check_timeout; } gboolean uc_project_get_prompt_auth (void) { return project.prompt_auth; } gboolean uc_project_get_w3c_checks (const gchar * type) { gboolean ret = FALSE; if (!strcmp (type, "css")) ret = project.w3c_checks_css; else if (!strcmp (type, "html")) #ifdef ENABLE_TIDY ret = project.w3c_checks_html; #else ret = FALSE; #endif else if (!strcmp (type, "any")) ret = project.w3c_checks; else g_assert_not_reached (); return ret; } gboolean uc_project_get_security_checks (const gchar * type) { gboolean ret = FALSE; if (!strcmp (type, "bad_extensions")) ret = project.security_checks_bad_extensions; else if (!strcmp (type, "exclude_images")) ret = project.security_checks_exclude_images; else if (!strcmp (type, "virii")) #ifdef ENABLE_CLAMAV ret = project.security_checks_virii; #else ret = FALSE; #endif else if (!strcmp (type, "any")) ret = project.security_checks; else g_assert_not_reached (); return ret; } gboolean uc_project_get_export_labels (void) { return project.export_labels; } gboolean uc_project_get_export_numbering (void) { return project.export_numbering; } gboolean uc_project_get_export_external (void) { return project.export_external; } gboolean uc_project_get_export_ip (void) { return project.export_ip; } gboolean uc_project_get_debug_mode (void) { return project.debug_mode; } gboolean uc_project_get_dump_properties (void) { return project.dump_properties; } guint uc_project_get_tooltips_delay (void) { return project.tooltips_delay; } void uc_project_set_cookies (GHashTable * value) { project.cookies = value; } void uc_project_set_reject_directories (const gchar * items) { g_strfreev (project.reject_directories), project.reject_directories = NULL; project.reject_directories = g_strsplit (items, ",", -1); } void uc_project_set_reject_domains (const gchar * items) { g_strfreev (project.reject_domains), project.reject_domains = NULL; project.reject_domains = g_strsplit (items, ",", -1); } void uc_project_set_security_virii_extensions (const gchar * items) { g_free (project.virii_extensions), project.virii_extensions = NULL; project.virii_extensions = g_strdup (items); } void uc_project_set_w3c_html_extensions (const gchar * items) { g_free (project.html_extensions), project.html_extensions = NULL; project.html_extensions = g_strdup (items); } void uc_project_set_w3c_css_extensions (const gchar * items) { g_free (project.css_extensions), project.css_extensions = NULL; project.css_extensions = g_strdup (items); } void uc_project_set_reject_documents (const gchar * items) { g_free (project.reject_documents), project.reject_documents = NULL; project.reject_documents = g_strdup (items); } void uc_project_set_reject_images (const gchar * items) { g_free (project.reject_images), project.reject_images = NULL; project.reject_images = g_strdup (items); } void uc_project_set_security_bad_extensions (const gchar * items) { g_free (project.bad_extensions), project.bad_extensions = NULL; project.bad_extensions = g_strdup (items); } void uc_project_set_type (const UCProjectType type) { project.type = type; } void uc_project_set_id (const guint id) { project.id = id; } void uc_project_speed_check_set_download_content (const gboolean value) { uc_project_speed_check_set_download_content_value = value; } void uc_project_set_speed_check (const gboolean value) { uc_project_speed_check_set_download_content (value); project.speed_check = value; } void uc_project_set_browser_path (const gchar * value) { gchar *p = NULL; g_free (project.browser_path), project.browser_path = NULL; p = project.browser_path = g_strdup (value); // Remove extra characters added by GNOME after navigator options // if any do { if (*p == '"') *p = ' '; else if (*p == '%' && *(p + 1) == 's') { *p = ' '; *(p + 1) = ' '; } } while (*(++p)); } void uc_project_set_description (const gchar * value) { g_free (project.description), project.description = NULL; project.description = g_strdup (value); } void uc_project_set_title (const gchar * value) { g_free (project.title), project.title = NULL; project.title = g_strdup (value); } void uc_project_set_save_bookmarks (const gboolean value) { project.save_bookmarks = value; WSENS ("mwm_save_bookmarks", value); WSENS ("mw_bt_save_project", value); } void uc_project_set_save (const gboolean value) { project.save = value; WSENS ("mwm_save_project", value); WSENS ("mw_bt_save_project", value); } void uc_project_set_local_charset (G_CONST_RETURN gchar * value) { project.local_charset = value; } void uc_project_set_timeouts_blocked (const guint value) { project.timeouts_blocked = value; } void uc_project_set_check_is_current (const gboolean value) { project.check_is_current = value; } void uc_project_set_check_is_main (const gboolean value) { project.check_is_main = value; } void uc_project_set_url (const gchar * value) { g_free (project.url), project.url = NULL; project.url = g_strdup (value); } void uc_project_set_bookmarks_file (const gchar * value) { g_free (project.bookmarks_file), project.bookmarks_file = NULL; project.bookmarks_file = g_strdup (value); } void uc_project_set_bookmarks_type (const UCBookmarksType value) { project.bookmarks_type = value; } void uc_project_set_report_export_path (const gchar * value) { g_free (project.report_export_path), project.report_export_path = NULL; project.report_export_path = g_strdup (value); } void uc_project_set_current_host (const gchar * value) { g_free (project.current_host), project.current_host = NULL; project.current_host = g_strdup (value); } void uc_project_set_current_port (const gchar * value) { g_free (project.current_port), project.current_port = NULL; project.current_port = g_strdup (value); } void uc_project_set_check_wait (const guint value) { project.check_wait = value; } void uc_project_set_depth_level (const guint value) { project.depth_level = value; } void uc_project_set_working_path (const gchar * value) { g_free (project.working_path), project.working_path = NULL; project.working_path = g_strdup (value); } void uc_project_set_cache_name (const gchar * value) { g_free (project.cache_name), project.cache_name = NULL; project.cache_name = g_strdup (value); } void uc_project_set_proto_file_is_error (const gboolean value) { project.proto_file_is_error = value; } void uc_project_set_proto_file_check (const gboolean value) { project.proto_file_check = value; } void uc_project_set_cookies_accept (const gboolean value) { project.cookies_accept = value; } void uc_project_set_w3c_html_level (const gchar * value) { g_free (project.w3c_html_level), project.w3c_html_level = NULL; project.w3c_html_level = g_strdup (value); } void uc_project_set_proto_mailto (const gboolean value) { project.proto_mailto = value; } void uc_project_set_proto_ftp (const gboolean value) { project.proto_ftp = value; } void uc_project_set_passive_ftp (const gboolean value) { project.passive_ftp = value; } void uc_project_set_proto_https (const gboolean value) { project.proto_https = value; } void uc_project_set_cookies_warn_added (const gboolean value) { project.cookies_warn_added = value; } void uc_project_set_cookies_warn_updated (const gboolean value) { project.cookies_warn_updated = value; } void uc_project_set_cookies_warn_deleted (const gboolean value) { project.cookies_warn_deleted = value; } void uc_project_set_proto_mailto_check_mx (const gboolean value) { project.proto_mailto_check_mx = value; } void uc_project_set_check_chroot (const gboolean value) { project.check_chroot = value; } void uc_project_set_limit_local (const gboolean value) { project.limit_local = value; } void uc_project_set_use_proxy (const gboolean value) { project.use_proxy = value; } void uc_project_set_proxy_host (const gchar * value) { g_free (project.proxy_host), project.proxy_host = NULL; project.proxy_host = g_strdup (value); } void uc_project_set_proxy_port (const guint value) { project.proxy_port = value; } void uc_project_set_auth_line (const gchar * value) { g_free (project.auth_line), project.auth_line = NULL; project.auth_line = g_strdup (value); } void uc_project_set_chroot_path (const gchar * value) { g_free (project.chroot_path), project.chroot_path = NULL; project.chroot_path = g_strdup (value); } void uc_project_set_no_urls_args (const gboolean value) { project.no_urls_args = value; } void uc_project_set_download_images_content (const gboolean value) { project.images_content = value; } void uc_project_set_download_archives_content (const gboolean value) { project.archives_content = value; } void uc_project_set_check_timeout (const guint value) { project.check_timeout = value; } void uc_project_set_prompt_auth (const gboolean value) { project.prompt_auth = value; } void uc_project_set_security_checks (const gchar * type, const gboolean value) { if (!strcmp (type, "bad_extensions")) project.security_checks_bad_extensions = value; else if (!strcmp (type, "exclude_images")) project.security_checks_exclude_images = value; else if (!strcmp (type, "virii")) project.security_checks_virii = value; else if (!strcmp (type, "any")) project.security_checks = value; else g_assert_not_reached (); } void uc_project_set_w3c_checks (const gchar * type, const gboolean value) { if (!strcmp (type, "css")) project.w3c_checks_css = value; else if (!strcmp (type, "html")) project.w3c_checks_html = value; else if (!strcmp (type, "any")) project.w3c_checks = value; else g_assert_not_reached (); } void uc_project_set_export_labels (const gboolean value) { project.export_labels = value; } void uc_project_set_export_numbering (const gboolean value) { project.export_numbering = value; } void uc_project_set_export_external (const gboolean value) { project.export_external = value; } void uc_project_set_export_ip (const gboolean value) { project.export_ip = value; } void uc_project_set_debug_mode (const gboolean value) { project.debug_mode = value; } void uc_project_set_tooltips_delay (const guint value) { project.tooltips_delay = value; } void uc_project_set_dump_properties (const gboolean value) { project.dump_properties = value; } static GList * uc_project_xml_parse_project (GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *value = NULL; UCProjectProjects *item = NULL; xmlChar *tmp = NULL; item = g_new0 (UCProjectProjects, 1); item->location = NULL; item->title = NULL; item->description = NULL; item->id = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "id"))); xmlFree (tmp), tmp = NULL; item->type = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "type"))); xmlFree (tmp), tmp = NULL; item->create = atol ((char *) (tmp = xmlGetProp (cur, BAD_CAST "create"))); xmlFree (tmp), tmp = NULL; item->update = atol ((char *) (tmp = xmlGetProp (cur, BAD_CAST "update"))); xmlFree (tmp), tmp = NULL; cur = cur->xmlChildrenNode; while (cur != NULL && (item->description == NULL || item->title == NULL || item->location == NULL)) { if (!xmlStrcmp (cur->name, BAD_CAST "title")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); item->title = g_strdup ((gchar *) value); xmlFree (value), value = NULL; } else if (!xmlStrcmp (cur->name, BAD_CAST "description")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); item->description = (value) ? g_strdup ((gchar *) value) : g_strdup (""); xmlFree (value), value = NULL; } else if (!xmlStrcmp (cur->name, BAD_CAST "location")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); item->location = g_strdup ((gchar *) value); xmlFree (value), value = NULL; } cur = cur->next; } list = g_list_append (list, item); return list; } static GList * uc_project_xml_get_tags (const gchar * docname) { GList *list = NULL; xmlNodePtr cur = NULL; xmlDocPtr doc = NULL; if (!g_file_test (docname, G_FILE_TEST_EXISTS)) return list; doc = xmlParseFile (docname); cur = xmlDocGetRootElement (doc); g_assert (cur != NULL); cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "project")) list = uc_project_xml_parse_project (list, doc, cur); cur = cur->next; } xmlFreeDoc (doc), doc = NULL; return list; } static GHashTable * uc_project_xml_header_tag (GHashTable * table, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *key = NULL; xmlChar *value = NULL; table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "item")) { key = xmlGetProp (cur, BAD_CAST "name"); value = xmlGetProp (cur, BAD_CAST "value"); g_hash_table_replace (table, g_strdup ((gchar *) key), g_strdup ((gchar *) value)); xmlFree (value), value = NULL; xmlFree (key), key = NULL; } cur = cur->next; } return table; } static void uc_project_xml_properties_tag (UCLinkProperties * prop, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *tmp = NULL; cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "header")) prop->header = uc_project_xml_header_tag (prop->header, doc, cur); else if (!xmlStrcmp (cur->name, BAD_CAST "url")) { prop->protocol = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "proto"))); xmlFree (tmp), tmp = NULL; prop->link_icon = uc_check_get_link_type_icon (prop->link_type, prop->protocol); prop->ip_addr = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "ip_addr"))); xmlFree (tmp), tmp = NULL; prop->h_name = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "host"))); xmlFree (tmp), tmp = NULL; prop->port = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "port"))); xmlFree (tmp), tmp = NULL; prop->path = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "path"))); xmlFree (tmp), tmp = NULL; prop->args = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "args"))); xmlFree (tmp), tmp = NULL; } cur = cur->next; } } static GList * uc_project_xml_tag_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { UCHTMLTag *tag = NULL; xmlChar *tmp = NULL; tag = uc_html_parser_node_new (); tag->depth = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "depth"))); xmlFree (tmp), tmp = NULL; tag->type = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "type"))); xmlFree (tmp), tmp = NULL; tag->label = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "label"))); xmlFree (tmp), tmp = NULL; tag->value = g_strdup ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "value"))); xmlFree (tmp), tmp = NULL; list = g_list_append (list, tag); return list; } static GList * uc_project_xml_similar_links_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *value = NULL; cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "item")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); list = g_list_append (list, g_strdup ((gchar *) value)); xmlFree (value), value = NULL; } cur = cur->next; } return list; } static GList * uc_project_xml_bad_extensions_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *value = NULL; cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "item")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); list = g_list_append (list, g_strdup ((gchar *) value)); xmlFree (value), value = NULL; } cur = cur->next; } return list; } static GList * uc_project_xml_tags_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "tag")) list = uc_project_xml_tag_tag (list, doc, cur); cur = cur->next; } return list; } static GList * uc_project_xml_childs_tag (UCLinkProperties * prop, GList * list, xmlDocPtr doc, xmlNodePtr cur) { cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "page")) list = uc_project_xml_page_tag (prop, list, doc, cur); cur = cur->next; } return list; } static GList * uc_project_xml_page_tag (UCLinkProperties * parent, GList * list, xmlDocPtr doc, xmlNodePtr cur) { UCLinkProperties *prop = NULL; UCStatusCode *sc = NULL; xmlChar *tmp = NULL; prop = uc_check_link_properties_node_new (); prop->depth_level = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "depth"))); xmlFree (tmp), tmp = NULL; prop->uid = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "id"))); xmlFree (tmp), tmp = NULL; prop->parent = parent; prop->is_parsable = uc_utils_get_yesno ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "parsable"))); xmlFree (tmp), tmp = NULL; prop->is_downloadable = uc_utils_get_yesno ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "downloadable"))); xmlFree (tmp), tmp = NULL; prop->virii = uc_utils_get_yesno ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "virii"))); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "virname"); prop->virname = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "user_action"); prop->user_action = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; prop->w3c_valid = uc_utils_get_yesno ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "w3c_valid"))); xmlFree (tmp), tmp = NULL; prop->checked = uc_utils_get_yesno ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "checked"))); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "title"); prop->label = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "href"); prop->url = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; prop->link_type = atoi ((char *) (tmp = xmlGetProp (cur, BAD_CAST "type"))); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "original_value"); prop->link_value = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "current_path"); prop->current_path = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; tmp = xmlGetProp (cur, BAD_CAST "domain"); prop->domain = (tmp == NULL) ? g_strdup ("") : g_strdup ((gchar *) tmp); xmlFree (tmp), tmp = NULL; cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "properties")) uc_project_xml_properties_tag (prop, doc, cur); else if (!xmlStrcmp (cur->name, BAD_CAST "tag")) { GList *tl = NULL; UCHTMLTag *tag = NULL; tl = uc_project_xml_tag_tag (tl, doc, cur); if (tl) tag = (UCHTMLTag *) tl->data; prop->tag = tag; } else if (!xmlStrcmp (cur->name, BAD_CAST "tags")) prop->tags = uc_project_xml_tags_tag (prop->tags, doc, cur); else if (!xmlStrcmp (cur->name, BAD_CAST "similar_links")) { prop->similar_links_parents = uc_project_xml_similar_links_tag (prop->similar_links_parents, doc, cur); } else if (!xmlStrcmp (cur->name, BAD_CAST "bad_extensions")) { prop->bad_extensions = uc_project_xml_bad_extensions_tag (prop->bad_extensions, doc, cur); } else if (!xmlStrcmp (cur->name, BAD_CAST "childs")) prop->childs = uc_project_xml_childs_tag (prop, prop->childs, doc, cur); cur = cur->next; } sc = uc_application_get_status_code_properties ((gchar *) g_hash_table_lookup (prop->header, UC_HEADER_STATUS)); prop->status_icon = sc->icon_file; uc_project_xml_dispatch_links (prop); list = g_list_append (list, prop); return list; } static gchar * uc_project_xml_filters_get_value (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *value = NULL; GString *filters = g_string_new (""); cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "item")) { value = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); g_string_append_printf (filters, ",%s", g_strstrip ((gchar *) value)); xmlFree (value), value = NULL; } cur = cur->next; } if (filters->len > 0) g_string_erase (filters, 0, 1); return g_string_free (filters, FALSE); } static void uc_project_xml_filters_tag (xmlDocPtr doc, xmlNodePtr cur) { cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "directories")) uc_project_set_reject_directories ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "domains")) uc_project_set_reject_domains ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "documents")) uc_project_set_reject_documents ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "images")) uc_project_set_reject_images ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "virii_extensions")) uc_project_set_security_virii_extensions ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "bad_extensions")) uc_project_set_security_bad_extensions ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "html_extensions")) uc_project_set_w3c_html_extensions ( uc_project_xml_filters_get_value (doc, cur)); else if (!xmlStrcmp (cur->name, BAD_CAST "css_extensions")) uc_project_set_w3c_css_extensions ( uc_project_xml_filters_get_value (doc, cur)); cur = cur->next; } } /** * uc_project_xml_website_tag: * @list: #GList of links. * @doc: current #xmlDocPtr document. * @cur: current #xmlNodePtr cursor. * * Load all XML data from the disk for the current website project. * * See: uc_project_xml_project_tag () * * Returns: a #GList of the links' list. */ static GList * uc_project_xml_website_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { xmlChar *tmp = NULL; uc_project_set_report_export_path ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "report_export_path"))); xmlFree (tmp), tmp = NULL; uc_project_set_url ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "url"))); xmlFree (tmp), tmp = NULL; uc_project_set_current_host ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "current_host"))); xmlFree (tmp), tmp = NULL; uc_project_set_current_port ((gchar *) (tmp = xmlGetProp (cur, BAD_CAST "current_port"))); xmlFree (tmp), tmp = NULL; cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "page")) list = uc_project_xml_page_tag (NULL, list, doc, cur); cur = cur->next; } return list; } /** * uc_project_xml_report_tag: * @doc: current #xmlDocPtr document. * @cur: current #xmlNodePtr cursor. * * Load all XML data from the disk for the current project's report. * * See: uc_project_xml_project_tag () */ static void uc_project_xml_report_tag (xmlDocPtr doc, xmlNodePtr cur) { xmlChar *tmp[7]; guint i = 0; cur = cur->xmlChildrenNode; while (cur != NULL && xmlStrcmp (cur->name, BAD_CAST "links")) cur = cur->next; uc_check_report_force_values (atoi ((char *) (tmp[0] = xmlGetProp (cur, BAD_CAST "all"))), atoi ((char *) (tmp[1] = xmlGetProp (cur, BAD_CAST "checked"))), atoi ((char *) (tmp[2] = xmlGetProp (cur, BAD_CAST "bad"))), atoi ((char *) (tmp[3] = xmlGetProp (cur, BAD_CAST "malformed"))), atoi ((char *) (tmp[4] = xmlGetProp (cur, BAD_CAST "good"))), atoi ((char *) (tmp[5] = xmlGetProp (cur, BAD_CAST "ignored"))), atoi ((char *) (tmp[6] = xmlGetProp (cur, BAD_CAST "timeout"))), 0); for (i = 0; i < 7; i++) xmlFree (tmp[i]); } /** * uc_project_xml_project_tag: * @list: #GList of links. * @doc: current #xmlDocPtr document. * @cur: current #xmlNodePtr cursor. * * Load all XML data from the disk for the current project. * * See: uc_project_xml_report_tag (), * uc_project_xml_website_tag () * * Returns: a #GList of the links' list. */ static GList * uc_project_xml_project_tag (GList * list, xmlDocPtr doc, xmlNodePtr cur) { cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "website")) list = uc_project_xml_website_tag (list, doc, cur); else if (!xmlStrcmp (cur->name, BAD_CAST "report")) uc_project_xml_report_tag (doc, cur); cur = cur->next; } return list; } /** * uc_project_xml_load_settings: * @p: #UCProjectProjects node of the project to load. * * Load settings for a given project. * * See: uc_project_open (), * uc_project_xml_load_links () */ void uc_project_xml_load_settings (const UCProjectProjects * p) { xmlDocPtr doc = NULL; xmlNodePtr cur = NULL; xmlChar *tmp = NULL; gchar *path = NULL; G_CONST_RETURN gchar *charset; g_get_charset (&charset); uc_project_set_local_charset (charset); if (p == NULL) { path = g_strdup_printf ("%s/settings.xml", uc_project_get_working_path ()); if (!g_file_test (path, G_FILE_TEST_EXISTS)) uc_project_general_settings_create_default (); } else path = g_strdup_printf ("%s/projects/%u/settings.xml", uc_project_get_working_path (), p->id); g_assert (g_file_test (path, G_FILE_TEST_EXISTS)); doc = xmlParseFile (path); cur = xmlDocGetRootElement (doc); g_assert (cur != NULL); cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "project")) { xmlNodePtr cur1 = NULL; if ((tmp = xmlGetProp (cur, BAD_CAST "working_path"))) { uc_project_set_working_path ((gchar *) tmp); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_file_is_error"))) { uc_project_set_proto_file_is_error (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_file_check"))) { uc_project_set_proto_file_check (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "cookies_accept"))) { uc_project_set_cookies_accept (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "w3c_html_level"))) { uc_project_set_w3c_html_level ((gchar *) tmp); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_mailto"))) { uc_project_set_proto_mailto (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_https"))) { uc_project_set_proto_https (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_ftp"))) { uc_project_set_proto_ftp (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "passive_ftp"))) { uc_project_set_passive_ftp (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "cookies_warn_added"))) { uc_project_set_cookies_warn_added (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "cookies_warn_updated"))) { uc_project_set_cookies_warn_updated (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "cookies_warn_deleted"))) { uc_project_set_cookies_warn_deleted (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proto_mailto_check_mx"))) { uc_project_set_proto_mailto_check_mx (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "check_chroot"))) { uc_project_set_check_chroot (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "limit_local"))) { uc_project_set_limit_local (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "no_urls_args"))) { uc_project_set_no_urls_args (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "speed_check"))) { uc_project_set_speed_check (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "use_proxy"))) { uc_project_set_use_proxy (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "proxy_port"))) { uc_project_set_proxy_port (atoi ((char *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "chroot_path"))) { uc_project_set_chroot_path ((gchar *) tmp); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "download_images_content"))) { uc_project_set_download_images_content (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "download_archives_content"))) { uc_project_set_download_archives_content (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "check_timeout"))) { uc_project_set_check_timeout (atoi ((char *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "depth_level"))) { uc_project_set_depth_level (atoi ((char *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "check_wait"))) { uc_project_set_check_wait (atoi ((char *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "timeouts_blocked"))) { uc_project_set_timeouts_blocked (atoi ((char *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "prompt_auth"))) { uc_project_set_prompt_auth (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "w3c_checks"))) { uc_project_set_w3c_checks ("any", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "w3c_checks_css"))) { uc_project_set_w3c_checks ("css", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "w3c_checks_html"))) { uc_project_set_w3c_checks ("html", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "security_checks"))) { uc_project_set_security_checks ("any", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "security_checks_bad_extensions"))) { uc_project_set_security_checks ("bad_extensions", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "security_checks_exclude_images"))) { uc_project_set_security_checks ("exclude_images", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "security_checks_virii"))) { uc_project_set_security_checks ("virii", uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "export_labels"))) { uc_project_set_export_labels (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "export_numbering"))) { uc_project_set_export_numbering (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "export_external"))) { uc_project_set_export_external (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "export_ip"))) { uc_project_set_export_ip (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "debug_mode"))) { uc_project_set_debug_mode (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } if ((tmp = xmlGetProp (cur, BAD_CAST "dump_properties"))) { uc_project_set_dump_properties (uc_utils_get_yesno ((gchar *) tmp)); xmlFree (tmp), tmp = NULL; } cur1 = cur->xmlChildrenNode; while (cur1 != NULL) { if (!xmlStrcmp (cur1->name, BAD_CAST "filters")) { uc_project_xml_filters_tag (doc, cur1); break; } cur1 = cur1->next; } } cur = cur->next; } g_free (path), path = NULL; xmlFreeDoc (doc), doc = NULL; } /** * uc_project_xml_load_links: * @p: #UCProjectProjects node of the project to load. * * Load all project's links from the disk. * * See: uc_project_open (), * uc_project_xml_load_settings () * * Returns: A #GList of all project's links. */ static GList * uc_project_xml_load_links (const UCProjectProjects * p) { GList *list = NULL; xmlNodePtr cur = NULL; gchar *path = NULL; xmlDocPtr doc = NULL; uc_project_set_id (p->id); uc_project_set_title (p->title); uc_project_set_description (p->description); path = g_strdup_printf ("%s/projects/%u/project.xml", uc_project_get_working_path (), p->id); g_assert (g_file_test (path, G_FILE_TEST_EXISTS)); doc = xmlParseFile (path); cur = xmlDocGetRootElement (doc); g_assert (cur != NULL); cur = cur->xmlChildrenNode; while (cur != NULL) { if (!xmlStrcmp (cur->name, BAD_CAST "project")) list = uc_project_xml_project_tag (list, doc, cur); cur = cur->next; } g_free (path), path = NULL; xmlFreeDoc (doc), doc = NULL; return list; } static void uc_project_xml_dispatch_links (UCLinkProperties * prop) { GList *item = NULL; item = g_list_first (prop->tags); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; if (tag->type == LINK_TYPE_META) prop->metas = g_list_append (prop->metas, tag); else if (tag->type == LINK_TYPE_EMAIL) prop->emails = g_list_append (prop->emails, tag); else if (tag->type != LINK_TYPE_NONE) prop->all_links = g_list_append (prop->all_links, tag); item = g_list_next (item); } } gurlchecker-0.13.1/src/application.h0000644000175000017500000001211711330116216014252 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_APPLICATION #define H_UC_APPLICATION #include "general.h" #include "project.h" void uc_application_progress_dialog_set_modal (const gboolean modal); void uc_application_buffer_show (const gchar * title, const gchar * message); void uc_application_w3c_validate (void); gchar *uc_application_input_file_dialog (const gchar * title, const gchar * text); gchar *uc_application_input_dialog (const gchar * title, const gchar * text); gboolean uc_application_cookie_warning_dialog_show (const gchar * server, const gchar * page, const gchar * label, gchar ** name, gchar ** value, gchar ** path, gchar ** expires, const UCCookiesAction action); gboolean uc_application_auth_dialog_show (const gchar * title, const gchar *host); void uc_application_set_status_bar (const gfloat progress, const gchar * msg); void uc_application_open_project_dialog_show (void); gboolean uc_application_project_information_dialog_show (void); gboolean uc_application_treeview_get_selected_iter (const GtkTreeView * tv, GtkTreeIter * iter); void uc_application_build_url_treeview (void); void uc_application_build_projects_treeview (void); void uc_application_reset_menu_protocols (void); void uc_application_reset_menu_status (void); void uc_application_reset_menu_types (void); void uc_application_main_tree_apply_filters (const gchar *wname); void uc_application_main_tree_display_all (void); void uc_application_main_tree_collapse_all (void); void uc_application_main_tree_expand_all (void); void uc_application_main_tree_display_branch (const UCLinkProperties * prop); void uc_application_display_search_message (const guint label_pos, const gchar * message); gint uc_application_dialog_yes_no_show (const gchar * message, const GtkMessageType msg_type); void uc_application_search_dialog_show (void); void uc_application_new_search_dialog_show (void); void uc_application_add_filter_directory_add (void); void uc_application_add_filter_domain_add (void); void uc_application_add_filter_domain_remove (void); void uc_application_add_filter_directory_remove (void); void uc_application_add_filter_directory_dialog_show (void); void uc_application_page_information_dialog_show (void); void uc_application_display_state_message (const guint label_pos, const gchar * message); void uc_application_display_informations (GtkTreeView * treeview); void uc_application_treeview_activate_popup (GdkEventButton * event); void uc_application_view_similar_links_dialog_show (void); void uc_application_view_bad_extensions_dialog_show (void); void uc_application_new_instance_launch (void); void uc_application_launch_web_browser (const gchar * url); void uc_application_menu_set_sensitive_all (const gchar * name, const gboolean val); void uc_application_proxy_frame_control_sensitive (void); void uc_application_make_paths (void); void uc_application_remove_paths (void); void uc_application_view_source_dialog_show (void); void uc_application_view_image_dialog_show (void); void uc_application_dialog_show (const gchar * message, const GtkMessageType msg_type); void uc_application_globals_init (void); void uc_application_init (gchar * url, gchar * auth_user, gchar * auth_password, gboolean no_urls_args); gboolean uc_application_quit (void); void uc_application_draw_main_frames (void); void uc_application_search_get_data (void); gboolean uc_application_project_get_data (const UCProjectType type); void uc_application_get_bookmarks_project_data (void); void uc_application_new_web_dialog_show (void); void uc_application_new_local_file_dialog_show (void); void uc_application_new_bookmarks_dialog_show (void); void uc_application_open_dialog_show (void); void uc_application_about_dialog_show (void); void uc_application_progress_dialog_show (); void uc_application_settings_dialog_show (void); gboolean uc_application_settings_get_data (void); void uc_application_status_code_properties_init (void); void uc_application_urls_user_actions_init (void); UCURLsUserActions *uc_application_get_urls_user_action (gchar * key); UCURLsUserActions *uc_application_get_urls_user_action_by_value (gchar * value); UCStatusCode *uc_application_get_status_code_properties (const gchar * status_code); #endif gurlchecker-0.13.1/src/ucclam.h0000644000175000017500000000226611336005036013222 00000000000000/* * Copyright (C) 2002-2009 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_CLAMAV #ifndef H_UC_CLAM #define H_UC_CLAM #include "general.h" typedef struct _UCClam UCClam; struct _UCClam { gsize size; unsigned int sigs; const char *virname; struct cl_engine *engine; }; UCClam *uc_ucclam_new (gchar **error); gboolean uc_ucclam_scan (UCClam * clam, const gchar * path, gchar ** virname); void uc_ucclam_free (UCClam ** clam); #endif #endif gurlchecker-0.13.1/src/general.h0000644000175000017500000006412511524253761013406 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_GENERAL #define H_UC_GENERAL #ifdef HAVE_CONFIG_H #include #endif #include #include #include "getopt.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_GNUTLS #include #endif #ifdef ENABLE_CLAMAV #include #endif #ifdef ENABLE_CROCO #include #endif #ifdef ENABLE_TIDY #ifdef HAVE_TIDY_H_IN_SUBDIR #include #include #else #include #include #endif #endif #ifdef ENABLE_SQLITE3 #include #endif #ifdef ENABLE_JSON #include #endif /** * UC_SYSTEM_NAME: * * Macro to determine the system we are running on. */ #if defined(__linux__) || defined(__GLIBC__) #define UC_SYSTEM_NAME "Linux" #include #elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) #ifdef __NetBSD__ #define UC_SYSTEM_NAME "NetBSD" #elif __OpenBSD__ #define UC_SYSTEM_NAME "OpenBSD" #elif __FreeBSD__ #define UC_SYSTEM_NAME "FreeBSD" #endif #include #include #include #include #elif defined(__sun__) #include #define statfs statvfs #define UC_SYSTEM_NAME "Solaris" #endif #include #include #include #include #include #include #include #define UC_VERSION VERSION #define UC_UPDATE_UI \ while (g_main_context_pending (NULL)) \ { \ GDK_THREADS_LEAVE (); \ g_main_context_iteration (NULL, FALSE); \ } /** * UC_GLADE_XML_FILENAME: * * Macro for Glade XML file location. */ #define UC_GLADE_XML_FILENAME \ PACKAGE_DATA_DIR "/" PACKAGE "/ui/gurlchecker.glade" /** * UC_STYLESHEETS_DIR: * * Macro for export's stylesheets files location. */ #define UC_STYLESHEETS_DIR \ PACKAGE_DATA_DIR "/" PACKAGE "/stylesheets" /** * UC_PIXMAPS_DIR * * Macro for images path location. */ #define UC_PIXMAPS_DIR \ PACKAGE_DATA_DIR "/" PACKAGE "/ui/" /** * UC_DIALOG_SETTINGS_DOCUMENT_TYPES_MAX_COLS: * * Macro for the maximum number of columns to display for document types in * the "Documents" and "Images" notbooks of the settings. */ #define UC_DIALOG_SETTINGS_DOCUMENT_TYPES_MAX_COLS \ 6 /** * UC_CHECK_BUTTON_MAX_DISPLAY: * * Macro for the maximum number of check boxes to display for document types in * the "Documents" and "Images" notbooks of the settings. */ #define UC_CHECK_BUTTON_MAX_DISPLAY \ 100 /** * UC_CHECK_MESSAGE_LABEL_FIRST: * * Macro to indicate on which location on the check dialog we must dislay * a message. */ #define UC_CHECK_MESSAGE_LABEL_FIRST \ 0 /** * UC_CHECK_MESSAGE_LABEL_SECOND: * * Macro to indicate on which location on the check dialog we must dislay * a message. */ #define UC_CHECK_MESSAGE_LABEL_SECOND \ 1 /** * UC_CHECK_MESSAGE_LABEL_THIRD: * * Macro to indicate on which location on the check dialog we must dislay * a message. */ #define UC_CHECK_MESSAGE_LABEL_THIRD \ 2 /** * UC_STATUS_CODE_INTERNALS_LIMIT: * * Macro to indicate that all status codes upper are gURLChecker * internal status codes. */ #define UC_STATUS_CODE_INTERNALS_LIMIT \ 700 /** * UC_STATUS_CODE_PAGE_OK: * * Macro for HTTP status code 200. */ #define UC_STATUS_CODE_PAGE_OK \ "200" /** * UC_STATUS_CODE_NO_DATA: * * Macro for HTTP status code 204. */ #define UC_STATUS_CODE_NO_DATA \ "204" /** * UC_STATUS_CODE_MOVED_PERMANENTLY: * * Macro for HTTP status code 301. */ #define UC_STATUS_CODE_MOVED_PERMANENTLY \ "301" /** * UC_STATUS_CODE_REDIRECTED: * * Macro for HTTP status code 302. */ #define UC_STATUS_CODE_REDIRECTED \ "302" /** * UC_STATUS_CODE_REDIRECTED_SEE_OTHER: * * Macro for HTTP status code 303. */ #define UC_STATUS_CODE_REDIRECTED_SEE_OTHER \ "303" /** * UC_STATUS_CODE_RESTRICTED: * * Macro for HTTP status code 401. */ #define UC_STATUS_CODE_RESTRICTED \ "401" /** * UC_STATUS_CODE_PAGE_NOT_FOUND: * * Macro for HTTP status code 404. */ #define UC_STATUS_CODE_PAGE_NOT_FOUND \ "404" /** * UC_STATUS_CODE_BAD_METHOD: * * Macro for HTTP status code 405. */ #define UC_STATUS_CODE_BAD_METHOD \ "405" /** * UC_STATUS_CODE_TIMEOUT: * * Macro for HTTP status code 408. */ #define UC_STATUS_CODE_TIMEOUT \ "408" /** * UC_STATUS_CODE_FTP_MAX_CLIENTS: * * Macro for FTP response we are using for "Max clients". */ #define UC_STATUS_CODE_FTP_MAX_CLIENTS \ "530" /** * UC_STATUS_CODE_HOST_IS_UNREACHABLE: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_HOST_IS_UNREACHABLE \ "999" /** * UC_STATUS_CODE_UNKNOWN: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_UNKNOWN \ "998" /** * UC_STATUS_CODE_IGNORED_LINK: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_IGNORED_LINK \ "997" /** * UC_STATUS_CODE_MALFORMED_LINK: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_MALFORMED_LINK \ "899" /** * UC_STATUS_CODE_FILE_PROTO_ERROR: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_FILE_PROTO_ERROR \ "898" /** * UC_STATUS_CODE_BAD_EMAIL_LINK: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_BAD_EMAIL_LINK \ "799" /** * UC_STATUS_CODE_BAD_EMAIL_LINK_MX: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_BAD_EMAIL_LINK_MX \ "798" /** * UC_STATUS_CODE_GOOD_EMAIL_LINK: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_GOOD_EMAIL_LINK \ "797" /** * UC_STATUS_CODE_FTP_OK: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_FTP_OK \ "702" /** * UC_STATUS_CODE_FTP_BAD: * * Macro for gURLChecker internal status code. */ #define UC_STATUS_CODE_FTP_BAD \ "701" /** * UC_IGNORED_LINK_BGCOLOR: * * Macro for ignored links color. */ #define UC_IGNORED_LINK_BGCOLOR \ "pink" /** * UC_BAD_LINK_BGCOLOR: * * Macro for bad links color. */ #define UC_BAD_LINK_BGCOLOR \ "red" /** * UC_GOOD_LINK_BGCOLOR: * * Macro for good links color. */ #define UC_GOOD_LINK_BGCOLOR \ "green" /** * UC_TIMEOUT_LINK_BGCOLOR: * * Macro for timeouts links color. */ #define UC_TIMEOUT_LINK_BGCOLOR \ "purple" /** * MALFORMED_LINK_BGCOLOR: * * Macro for malformed links color. */ #define UC_MALFORMED_LINK_BGCOLOR \ "brown" /** * UC_HOST_UNREACHABLE_LINK_BGCOLOR: * * Macro for "host unreachable" links color. */ #define UC_HOST_UNREACHABLE_LINK_BGCOLOR \ "yellow" /** * UC_NO_DATA_LINK_BGCOLOR: * * Macro for color of good links with no content. */ #define UC_NO_DATA_LINK_BGCOLOR \ "orange" /** * UC_RESTRICTED_LINK_BGCOLOR: * * Macro for restricted links color. */ #define UC_RESTRICTED_LINK_BGCOLOR \ "blue" /** * UC_FILE_ERROR_LINK_BGCOLOR: * * Macro for local files links color when user choose to consider them * like an error. */ #define UC_FILE_ERROR_LINK_BGCOLOR \ "silver" /** * UC_BAD_EMAIL_LINK_BGCOLOR: * * Macro for bad email links. */ #define UC_BAD_EMAIL_LINK_BGCOLOR \ "red" /** * UC_GOOD_EMAIL_LINK_BGCOLOR: * * Macro for good email links color. */ #define UC_GOOD_EMAIL_LINK_BGCOLOR \ "green" #ifdef ENABLE_GNUTLS /** * UC_CHECK_PROTOCOLS_ACCEPTED: * * Macro for indicate which protocols we can check. * For the moment gURLChecker can only check HTTP protocol. */ #define UC_CHECK_PROTOCOLS_ACCEPTED \ "http,https,ftp" /** * UC_CHECK_PROTOCOLS_ACCEPTED_LEN: * * Macro for indicate the number of protocols we can check. */ #define UC_CHECK_PROTOCOLS_ACCEPTED_LEN \ 3 #else /** * UC_CHECK_PROTOCOLS_ACCEPTED: * * Macro for indicate which protocols we can check. * For the moment gURLChecker can only check HTTP protocol. */ #define UC_CHECK_PROTOCOLS_ACCEPTED \ "http,ftp" /** * UC_CHECK_PROTOCOLS_ACCEPTED_LEN: * * Macro for indicate the number of protocols we can check. */ #define UC_CHECK_PROTOCOLS_ACCEPTED_LEN \ 2 #endif /** * UC_CHECK_PROTOCOLS_GET_ACCEPTED: * * Macro to get protocols we can check. */ #define UC_CHECK_PROTOCOLS_GET_ACCEPTED \ g_strsplit( \ UC_CHECK_PROTOCOLS_ACCEPTED, \ UC_SPLIT_DELIMITER, \ UC_CHECK_PROTOCOLS_ACCEPTED_LEN \ ) #define UC_SPLIT_DELIMITER \ "," /** * UC_DEFAULT_SECURITY_BAD_EXTENSIONS: * * Macro to indicate for which bad extensions we must search. */ #define UC_DEFAULT_SECURITY_BAD_EXTENSIONS \ "bak,bad,sav,~,ok,-,old,orig,false" /** * UC_DEFAULT_SECURITY_VIRII_EXTENSIONS: * * Macro to indicate for which extensions we must search for virii. */ #define UC_DEFAULT_SECURITY_VIRII_EXTENSIONS \ "application,audio,image,text,video," \ "chemical,model,multipart,x-conference,x-epoc,x-world" /** * UC_DEFAULT_W3C_HTML_EXTENSIONS: * * Macro to indicate for which extensions we must search for HTML validation. */ #define UC_DEFAULT_W3C_HTML_EXTENSIONS \ "cfm,html,htm,pl,phtml,shtml,asp,axp,aspx,php,php3,php4,php5" /** * UC_DEFAULT_W3C_CSS_EXTENSIONS: * * Macro to indicate for which extensions we must search for CSS validation. */ #define UC_DEFAULT_W3C_CSS_EXTENSIONS \ "css" /** * UC_LABEL_DISPLAY_MAX_LEN: * * Macro to indicate the maximum display size of a string. * * @see: uc_utils_string_format4display() */ #define UC_LABEL_DISPLAY_MAX_LEN \ 45 /** * UC_DEFAULT_WEB_BROWSER_PATH: * * Macro to specify default browser path location. */ #define UC_DEFAULT_WEB_BROWSER_PATH \ "/usr/bin/mozilla" /** * WSENS: * @name: name of the widget in libglade XML file. * @value: TRUE or FALSE. * * Macro to set the "sensitive" property of a widget. */ #define WSENS(name, value) \ gtk_widget_set_sensitive (glade_xml_get_widget(glade, name), value) /** * UC_GET_WIDGET: * @name: name of the widget. * @window: #GtkWindow widget to work with. * @widget: #GtkWidget to work with. * * Macro to get a #GtkWidget in the third argument. * * @see: UC_SET_WIDGET() */ #define UC_GET_WIDGET(name, window, widget) \ widget = GTK_WIDGET (g_object_get_data (G_OBJECT (window), name)) /** * UC_SET_WIDGET: * @name: name of the widget. * @window: #GtkWindow widget to work with. * @widget: #GtkWidget to work with. * * Macro to save a #GtkWidget to retrieve it faster later. * * @see: UC_GET_WIDGET() */ #define UC_SET_WIDGET(name, window, widget) \ g_object_set_data_full (G_OBJECT (window), name, \ g_object_ref (widget), (GDestroyNotify) g_object_unref) /** * WGET: * @name: name of the widget to retreive. * * Macro to get a GtkWidget from a GladeXML object. * */ #define WGET(name) \ glade_xml_get_widget (glade, name) /** * UC_BUFFER_LEN: * * Macro to indicate maximum length of buffer which contains URLs. */ #define UC_BUFFER_LEN \ 1024 /** * UC_BUFFER_DATETIME_LEN: * * Macro to indicate maximum length of date and time buffers. */ #define UC_BUFFER_DATETIME_LEN \ 20 /** * UC_BUFFER_DATE_LEN: * * Macro to indicate maximum length of date buffers. */ #define UC_BUFFER_DATE_LEN \ 11 /** * UC_HEADER_STATUS_CODE_LEN: * * Macro indicate the maximum length of a HTTP status code. */ #define UC_HEADER_STATUS_CODE_LEN \ 3 /** * UC_HEADER_STATUS_CODE_FIRST_POS: * * Macro to indicate the first position of the HTTP status code in * the buffer. */ #define UC_HEADER_STATUS_CODE_FIRST_POS \ 9 /** * UC_PROTOCOL_FTP: * * Macro for the FTP protocol string identifier. */ #define UC_PROTOCOL_FTP \ "ftp" /** * UC_PROTOCOL_HTTP: * * Macro for the HTTP protocol string identifier. */ #define UC_PROTOCOL_HTTP \ "http" /** * UC_PROTOCOL_HTTPS: * * Macro for the HTTPS protocol string identifier. */ #define UC_PROTOCOL_HTTPS \ "https" /** * UC_PROTOCOL_MAILTO: * * Macro for the MAILTO protocol string identifier. */ #define UC_PROTOCOL_MAILTO \ "mailto" /** * UC_PROTOCOL_FILE: * * Macro for the FILE protocol string identifier. */ #define UC_PROTOCOL_FILE \ "file" /** * UC_CONTENT_TYPE: * * Macro for the HTTP header content type field name. */ #define UC_CONTENT_TYPE \ "content-type" /* FIXME */ /** * UC_CONTENT_TYPE_FTP: * * gURLChecker internal mime type. */ #define UC_CONTENT_TYPE_FTP \ "ftp/file" /** * UC_CONTENT_LENGTH: * * Macro for the HTTP header content length field. */ #define UC_CONTENT_LENGTH \ "content-length" /** * UC_LAST_MODIFIED: * * Macro for the HTTP header last modified field. */ #define UC_LAST_MODIFIED \ "last-modified" /** * UC_SET_COOKIE: * * Macro for the HTTP header set-cookie field. */ #define UC_SET_COOKIE \ "set-cookie" /** * UC_CONTENT_TYPE_HTML: * * Macro for the HTTP content type string identifier. */ #define UC_CONTENT_TYPE_HTML \ "text/html" /** * UC_CONTENT_TYPE_CSS: * * Macro for the stylesheet content type. */ #define UC_CONTENT_TYPE_CSS \ "text/css" /** * UC_HEADER_STATUS: * * Macro for gURLChecker internal link status string. */ #define UC_HEADER_STATUS \ "status" /** * UC_CONTENT_LOCATION: * * Macro for the HTTP header content location field. */ #define UC_CONTENT_LOCATION \ "content-location" /** * UC_LOCATION: * * Macro for the HTTP header location field. */ #define UC_LOCATION \ "location" /** * UC_WWW_AUTHENTICATE: * * Macro for the WWW-Authenticate HTTP header field */ #define UC_WWW_AUTHENTICATE \ "www-authenticate" /** * UC_SERVER: * * Macro for the HTTP header server field name. */ #define UC_SERVER \ "server" /** * UC_URL_DEFAULT_PORT: * * Macro to indicate the default URL port when it is not specified. */ #define UC_URL_DEFAULT_PORT \ "80" /** * UC_URL_DEFAULT_SSL_PORT: * * Macro to indicate the default URL port when it is not specified. */ #define UC_URL_DEFAULT_SSL_PORT \ "443" #define UC_URL_DEFAULT_FTP_PORT \ "21" #define UC_SOCKET_OPEN_FORCE_ARGS_USE \ TRUE #define UC_SOCKET_OPEN_DEFAULT \ FALSE /** * UC_TOOLTIPS_DELAY_DEFAULT: * * Macro to indicate main tree view tooltip delay. */ #define UC_TOOLTIPS_DELAY_DEFAULT \ 500 /** * UC_CHECK_WAIT_DEFAULT: * * Macro for default time to wait between links check. */ #define UC_CHECK_WAIT_DEFAULT \ 0 /** * UC_CHECK_TIMEOUT_DEFAULT: * * Macro for default timeout value. */ #define UC_CHECK_TIMEOUT_DEFAULT \ 30 /** * UC_MAX_DEPTH_LEVEL: * * Macro for maximum recursion depth level on pages. */ #define UC_MAX_DEPTH_LEVEL \ 1000 /** * UC_TIMEOUTS_BLOCKED_DEFAULT: * * Macro for maximum number of attempts after a timedouted * host should not be checked anymore */ #define UC_TIMEOUTS_BLOCKED_DEFAULT \ 2 /** * UC_USER_AGENT: * * Macro for user agent HTTP header field. */ #define UC_USER_AGENT \ "Mozilla/5.0 gURLChecker/" UC_VERSION " (" UC_SYSTEM_NAME ")" /* global pointer for glade xml file */ GladeXML *glade; /* treeview pointers */ GtkTreeView *treeview; /* url list */ GtkTreeView *treeview_filter_directories; /* rejected directories */ GtkTreeView *treeview_projects; /* existant projects */ GtkTreeView *treeview_filter_domains; /* rejected domains */ GtkTreeView *treeview_search; /* result of the search */ /* treestore for the url treeview list */ GtkTreeStore *treestore; /* url list */ GtkListStore *treestore_filter_directories; /* rejected directories */ GtkListStore *treestore_filter_domains; /* rejected domains */ GtkListStore *treestore_search; /* result of the search */ gboolean uc_refresh_page; #ifdef ENABLE_CLAMAV gboolean uc_init_clamav_done; #endif GdkPixbuf *security_alert_icon; GdkPixbuf *w3c_alert_icon; GdkPixbuf *empty_icon; /** * UCSearchState: * @string: String to search. * @case_sensitive: %TRUE if the search should be case sensitive. * @pages_content: %TRUE if the search must be done in page content. * @links_name: %TRUE if the search must be done in links name. * @meta_content: %TRUE if the search must be done in META tags. * @emails: %TRUE if the search must be done in E-Mails links. * * Structure to store search properties. */ struct UCSearchState { gchar *string; gboolean case_sensitive; gboolean status_code; gboolean pages_content; gboolean links_name; gboolean meta_content; gboolean emails; } search_state; /** * UCURLsUserActions: * @id: Index of the action. * @label: Action label. * * Structure to store bad URLs actions. */ typedef struct _UCURLsUserActions UCURLsUserActions; struct _UCURLsUserActions { gchar *id; gchar *label; }; /** * UCStatusCode: * @color: Color to associate with the status code. * @message: Short message to display. * @description: Description of the meaning of the status code. * @icon_file: Image to assiciate with the status code. * * Structure to store status code properties. */ typedef struct _UCStatusCode UCStatusCode; struct _UCStatusCode { gchar *color; gchar *message; gchar *description; GdkPixbuf *icon_file; }; #define UC_DISPLAY_PROTO_SET_NONE \ current_display_proto = UC_DISPLAY_PROTO_NONE #define UC_DISPLAY_STATUS_SET_NONE \ current_display_status = UC_DISPLAY_STATUS_NONE #define UC_DISPLAY_TYPE_SET_NONE \ current_display_type = UC_DISPLAY_TYPE_NONE #define UC_DISPLAY_SET_ALL \ UC_DISPLAY_TYPE_SET_NONE;\ UC_DISPLAY_STATUS_SET_NONE; \ UC_DISPLAY_PROTO_SET_NONE #define UC_DISPLAY_PROTO_SET(flag) current_display_proto |= (flag) #define UC_DISPLAY_PROTO_UNSET(flag) current_display_proto &= ~(flag) #define UC_DISPLAY_PROTO_IS(flag) (current_display_proto & flag) #define UC_DISPLAY_PROTO_IS_NONE (current_display_proto == 0) typedef enum _UCDisplayProto UCDisplayProto; enum _UCDisplayProto { UC_DISPLAY_PROTO_NONE = 0, UC_DISPLAY_PROTO_HTTP = 1, UC_DISPLAY_PROTO_HTTPS = 1 << 1, UC_DISPLAY_PROTO_FTP = 1 << 2, UC_DISPLAY_PROTO_FILE = 1 << 3 }; UCDisplayProto current_display_proto; #define UC_DISPLAY_STATUS_SET(flag) current_display_status |= (flag) #define UC_DISPLAY_STATUS_UNSET(flag) current_display_status &= ~(flag) #define UC_DISPLAY_STATUS_IS(flag) (current_display_status & flag) #define UC_DISPLAY_STATUS_IS_NONE (current_display_status == 0) typedef enum _UCDisplayStatus UCDisplayStatus; enum _UCDisplayStatus { UC_DISPLAY_STATUS_NONE = 0, UC_DISPLAY_STATUS_GOODLINKS = 1, UC_DISPLAY_STATUS_BADLINKS = 1 << 1, UC_DISPLAY_STATUS_TIMEOUTS = 1 << 2, UC_DISPLAY_STATUS_MALFORMEDLINKS = 1 << 3, UC_DISPLAY_STATUS_SECURITY_ALERTS = 1 << 4, UC_DISPLAY_STATUS_W3C_ALERTS = 1 << 5 }; UCDisplayStatus current_display_status; #define UC_DISPLAY_TYPE_SET(flag) current_display_type |= (flag) #define UC_DISPLAY_TYPE_UNSET(flag) current_display_type &= ~(flag) #define UC_DISPLAY_TYPE_IS(flag) (current_display_type & flag) #define UC_DISPLAY_TYPE_IS_NONE (current_display_type == 0) typedef enum _UCDisplayType UCDisplayType; enum _UCDisplayType { UC_DISPLAY_TYPE_NONE = 0, UC_DISPLAY_TYPE_HREF = 1, UC_DISPLAY_TYPE_IMAGE = 1 << 1, UC_DISPLAY_TYPE_FRAME = 1 << 2, UC_DISPLAY_TYPE_EMAIL = 1 << 3, UC_DISPLAY_TYPE_CSS = 1 << 4 }; UCDisplayType current_display_type; /** * UCLinkType: * @LINK_TYPE_NONE: No specific type. * @LINK_TYPE_HREF: HREF tag (HTTP) with a page. * @LINK_TYPE_HREF_SSL: HREF tag (HTTPS) with a page. * @LINK_TYPE_HREF_FTP: HREF tag (FTP) with a page. * @LINK_TYPE_BASE_HREF: BASE HREF tag. * @LINK_TYPE_FILE_HREF: HREF tag (FILE) with a local page. * @LINK_TYPE_FILE_IMAGE: IMG tag with a local image. * @LINK_TYPE_IMAGE: IMG tag with a image. * @LINK_TYPE_IMAGE_SSL: IMG tag (HTTPS) with a image. * @LINK_TYPE_IMAGE_FTP: IMG tag (FTP) with a image. * @LINK_TYPE_EMAIL: HREF tag (MAILTO) with a email. * @LINK_TYPE_META: META tag. * @LINK_TYPE_CSS: CSS tag (HTTP). * @LINK_TYPE_CSS_SSL: CSS tag (HTTPS). * @LINK_TYPE_FRAME: FRAME or IFRAME tag (HTTP). * @LINK_TYPE_FRAME_SSL: FRAME or IFRAME tag (HTTPS). * @LINK_TYPE_BOOKMARK_FOLDER: A bookmark folder. * @LINK_TYPES_SECURITY_TEST_BAD_EXTENSIONS: A fake link to test existence of * bad files on the server. * * Enumeration to identify links types. */ typedef enum _UCLinkType UCLinkType; enum _UCLinkType { LINK_TYPE_NONE, LINK_TYPE_HREF, LINK_TYPE_HREF_SSL, LINK_TYPE_HREF_FTP, LINK_TYPE_BASE_HREF, LINK_TYPE_FILE_HREF, LINK_TYPE_FILE_IMAGE, LINK_TYPE_IMAGE, LINK_TYPE_IMAGE_SSL, LINK_TYPE_IMAGE_FTP, LINK_TYPE_EMAIL, LINK_TYPE_META, LINK_TYPE_CSS, LINK_TYPE_CSS_SSL, LINK_TYPE_FRAME, LINK_TYPE_FRAME_SSL, LINK_TYPE_BOOKMARK_FOLDER, LINK_TYPES_SECURITY_TEST_BAD_EXTENSIONS }; /** * UCBookmarksType: * @UC_BOOKMARKS_TYPE_XBEL: xbel file. * @UX_BOOKMARKS_TYPE_FIREFOX: Firefox sqlite3 file. * @UX_BOOKMARKS_TYPE_GOOGLECHROME: Google Chrome json file. * @UX_BOOKMARKS_TYPE_OPERA: Opera file. * * Type of current bookmark file. */ typedef enum _UCBookmarksType UCBookmarksType; enum _UCBookmarksType { UC_BOOKMARKS_TYPE_NONE, UC_BOOKMARKS_TYPE_XBEL, UC_BOOKMARKS_TYPE_FIREFOX, UC_BOOKMARKS_TYPE_GOOGLECHROME, UC_BOOKMARKS_TYPE_OPERA }; /** * UCEmailStatus: * @UC_EMAIL_SYNTAX_BAD: Syntax of email is bad. * @UC_EMAIL_SYNTAX_MX_BAD: MX of email's domain is bad. * @UC_EMAIL_OK: Email is ok. * * Status for email links. */ typedef enum _UCEmailStatus UCEmailStatus; enum _UCEmailStatus { UC_EMAIL_SYNTAX_BAD, UC_EMAIL_SYNTAX_MX_BAD, UC_EMAIL_OK }; /** * UCExportFormat: * @UC_EXPORT_HTML: HTML export * * Export format. */ typedef enum _UCExportFormat UCExportFormat; enum _UCExportFormat { UC_EXPORT_HTML, UC_EXPORT_CSV, UC_EXPORT_LIST_NORMAL, UC_EXPORT_LIST_SIMPLE }; typedef enum _UCCookiesAction UCCookiesAction; enum _UCCookiesAction { UC_COOKIES_ACTION_ADD, UC_COOKIES_ACTION_UPDATE, UC_COOKIES_ACTION_DELETE }; /** * UCHTMLTag: * @depth: Depth of this node. * @label: Label of the link. * @value: Value of the link. * @type: Type of the link. * * Structure for HTML tags nodes. */ typedef struct _UCHTMLTag UCHTMLTag; struct _UCHTMLTag { guint depth; gchar *label; gchar *value; UCLinkType type; }; /** * UCLinkProperties: * @uid: Unique identifier for this node. * @treeview_path: tree view path of this node (it is filled on tree view * display). * @parent: Parent of this node. * @current_path: Current path of the page containing this link. * @iter: #GtkTreeIter iterator used for main URL treeview management. * @tag: #UCHTMLTag node for this link. * @link_type: Type of this link. * @link_icon: Icon associated with the type of this link. * @status_icon: Icon associated with the status of this link. * @link_value: Brut value of this link. * @url: Well formed URL of this link. * @normalized_url: Absolute URL. * @label: Label of this link. * @protocol: Protocol of the URL. * @h_name: Hostname of the URL. * @port: Port of the URL. * @path: Path of the URL. * @args: Arguments of the URL. * @domain: Domain name of the URL hostname. * @header: #GHashTable containing HTTP header fields and values. * @header_size: Size of the HTTP header. * @depth_level: Depth level of this node. * @is_parsable: TRUE if the content pointed by this link can be parse to * retreive others links. * @is_downloadable: TRUE if the content of this link can be downloaded. * @checked: TRUE is this link has already been proccessed. * @xml_node: Reference on the XmlNodePtr of the XmlDocPtr for this node. This * field is used only for bookmarks. * @bookmark_folder_id: Reference on the parent id. This field is used only for FF * sqlite3 bookmarks. * @bookmark_id: id of the bookmark in FF database * @to_delete: TRUE if this node has been deleted. This field is used only for * bookmarks. * @metas: #GList of page HTML meta tags (pointers on this node "tags" * propertie). * @emails: #GList of E-Mails in this page (pointers on this node "tags" * propertie). * @all_links: #GList of all links in this page (pointers on this node "tags" * propertie). * @childs: Childs nodes of this node. * @similar_links_parents: Pointer on other nodes for links in this page * that has been already processed in another page. * @bad_extensions: #GList of bad extensions that exists on the server for * this node. * @tags: #GList of #UCHTMLTag for all links in this page. * @user_action: A user defined action label * @virii: if the file is a virus or not * @virname: Name of the virus is @virii == %TRUE * @w3c_valid: %TRUE if the document is in a correct format * * Structure to store links properties. */ typedef struct _UCLinkProperties UCLinkProperties; struct _UCLinkProperties { guint32 uid; gchar *treeview_path; struct _UCLinkProperties *parent; gchar *current_path; GtkTreeIter iter; gpointer tag; UCLinkType link_type; GdkPixbuf *link_icon; GdkPixbuf *status_icon; gchar *user_action; gchar *link_value; gchar *url; gchar *normalized_url; gchar *label; gchar *ip_addr; gchar *protocol; gchar *h_name; gchar *port; gchar *path; gchar *args; gchar *domain; GHashTable *header; guint header_size; guint depth_level; gboolean is_parsable; gboolean is_downloadable; gboolean checked; xmlNodePtr xml_node; #ifdef ENABLE_JSON JsonArray *json_array; #endif guint32 bookmark_folder_id; guint32 bookmark_id; gboolean to_delete; GList *metas; GList *emails; GList *all_links; GList *childs; GList *similar_links_parents; GList *bad_extensions; gboolean virii; gchar *virname; gboolean w3c_valid; GList *tags; }; #endif gurlchecker-0.13.1/src/report.c0000644000175000017500000003151711345763710013277 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "project.h" #include "application.h" #include "lists.h" #include "report.h" /* structure to store informations during the check for managing a project report */ static struct UCProjectReport { guint32 allLinks; guint32 checkedLinks; guint32 badLinks; guint32 goodLinks; guint32 timedOutLinks; guint32 ignoredLinks; guint32 malformedLinks; guint32 elapsedTime; } projectReport; static void report_set_progress_bar (const guint32 report_item, const gchar * glade_label, const gchar * report_label, const gchar * color); static gboolean uc_report_export_dialog_show (const UCExportFormat format, const UCExportFormat ftype); /** * uc_report_export_dialog_show: * * Show the report export dialog box. */ static gboolean uc_report_export_dialog_show (const UCExportFormat format, const UCExportFormat ftype) { GtkWidget *widget = NULL; gint res = 0; gboolean ret = FALSE; GtkWidget *dialog = NULL; dialog = WGET ("report_export_dialog"); widget = WGET ("report_export_path"); if (uc_project_get_report_export_path () != NULL) { gnome_file_entry_set_default_path (GNOME_FILE_ENTRY (widget), uc_project_get_report_export_path ()); gtk_entry_set_text ( GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (widget))), uc_project_get_report_export_path ()); } widget = WGET ("red_export_labels"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_labels ()); widget = WGET ("red_export_numbering"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_numbering ()); widget = WGET ("red_export_external"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_external ()); widget = WGET ("red_export_ip"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_ip ()); gtk_widget_show_all (dialog); if (format != UC_EXPORT_CSV) { widget = WGET ("red_export_external"); gtk_widget_hide (widget); widget = WGET ("red_export_ip"); gtk_widget_hide (widget); } if (ftype == UC_EXPORT_LIST_SIMPLE) { widget = WGET ("red_export_numbering"); gtk_widget_hide (widget); widget = WGET ("red_export_external"); gtk_widget_hide (widget); widget = WGET ("red_export_ip"); gtk_widget_hide (widget); } again: res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_OK) { const gchar *path = NULL; widget = WGET ("red_export_labels"); uc_project_set_export_labels ( (gboolean) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("red_export_numbering"); uc_project_set_export_numbering ( (gboolean) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("red_export_external"); uc_project_set_export_external ( (gboolean) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("red_export_ip"); uc_project_set_export_ip ( (gboolean) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("report_export_path"); path = gtk_entry_get_text ( GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (widget)))); if (!g_file_test (path, G_FILE_TEST_IS_DIR)) goto again; uc_project_set_report_export_path (path); // Add input to export path history gnome_entry_append_history (GNOME_ENTRY (gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY (widget))), TRUE, path); ret = TRUE; } gtk_widget_hide (dialog); return ret; } /** * uc_report_export: * @format: export format. * @list: list of URL to export. * @ftype: format type (%UC_EXPORT_NORMAL or %UC_EXPORT_SIMPLE). * * Export check report in the given format. */ void uc_report_export (const UCExportFormat format, GList *list, const UCExportFormat ftype) { gchar *message = NULL; GError *err = NULL; gchar *path = NULL; gint32 ret = 0; time_t t; struct tm *td; if (!uc_report_export_dialog_show (format, ftype)) return; time (&t); td = localtime (&t); // HTML if (format == UC_EXPORT_HTML) { gchar creation_date[UC_BUFFER_DATETIME_LEN + 1] = { 0 }; gchar *command_line = NULL; strftime (creation_date, UC_BUFFER_DATETIME_LEN, "%Y-%m-%d %H:%M:%S", td); path = g_strdup_printf ("%s/projects/%u/project.xml", uc_project_get_working_path (), uc_project_get_id ()); command_line = g_strdup_printf (" xsltproc " " --stringparam date \"%s\" " " --param withlabel %u " " --param withnum %u " " -o %s/uc_report_%u_%02d%02d%02d.html " " " UC_STYLESHEETS_DIR "/uc_html.xsl %s", creation_date, (gint) uc_project_get_export_labels (), (gint) uc_project_get_export_numbering (), uc_project_get_report_export_path (), uc_project_get_id (), td->tm_hour, td->tm_min, td->tm_sec, path); ret = g_spawn_command_line_async (command_line, &err); g_free (command_line), command_line = NULL; } // CSV else if (format == UC_EXPORT_CSV) { FILE *fd = NULL; path = g_strdup_printf ( "%s/uc_report_%u_%02d%02d%02d.csv", uc_project_get_report_export_path (), uc_project_get_id (), td->tm_hour, td->tm_min, td->tm_sec); fd = fopen (path, "w"); uc_lists_checked_links_dump (list, &fd, ftype); fclose (fd); ret = 1; } g_free (path), path = NULL; if (ret == 0) { message = g_strdup_printf ( "%s\n\n%s", _("Cannot execute xsltproc; the following error occured:"), err->message); uc_application_dialog_show (message, GTK_MESSAGE_ERROR); g_clear_error (&err); g_free (message), message = NULL; } } guint32 uc_report_get_malformedlinks (void) { return projectReport.malformedLinks; } guint32 uc_report_get_badlinks (void) { return projectReport.badLinks; } guint32 uc_report_get_ignoredlinks (void) { return projectReport.ignoredLinks; } guint32 uc_report_get_goodlinks (void) { return projectReport.goodLinks; } guint32 uc_report_get_timedoutlinks (void) { return projectReport.timedOutLinks; } guint32 uc_report_get_elapsedtime (void) { return projectReport.elapsedTime; } /* * return the total of links */ guint32 uc_report_get_alllinks (void) { return projectReport.allLinks; } /* * return the number of checked * links */ guint32 uc_report_get_checkedlinks (void) { return projectReport.checkedLinks; } /* * set "ignored links" value */ void uc_report_set_ignoredlinks (const gint32 val) { if (val < 0) projectReport.ignoredLinks++; else projectReport.ignoredLinks = val; } /* * set "checked links" value */ void uc_report_set_alllinks (const gint32 val) { if (val < 0) projectReport.allLinks++; else projectReport.allLinks = val; } /* * set "good links" value */ void uc_report_set_goodlinks (const gint32 val) { if (val < 0) projectReport.goodLinks++; else projectReport.goodLinks = val; } /* * set "malformed links" value */ void uc_report_set_malformedlinks (const gint32 val) { if (val < 0) projectReport.malformedLinks++; else projectReport.malformedLinks = val; } /* * set "bad links" value */ void uc_report_set_badlinks (const gint32 val) { if (val < 0) projectReport.badLinks++; else projectReport.badLinks = val; } /* * set "timeouts" value */ void uc_report_set_timedoutlinks (const gint32 val) { if (val < 0) projectReport.timedOutLinks++; else projectReport.timedOutLinks = val; } void uc_report_set_elapsedtime (const guint32 val) { projectReport.elapsedTime = val; } /* * set "single links" value */ void uc_report_set_checkedlinks (void) { projectReport.checkedLinks = projectReport.timedOutLinks + projectReport.badLinks + projectReport.malformedLinks + projectReport.goodLinks + projectReport.ignoredLinks; } /* * reset the check report structure */ void uc_check_report_reset (const guint val) { if (val != 0) projectReport.allLinks = 0; projectReport.checkedLinks = 0; projectReport.badLinks = 0; projectReport.malformedLinks = 0; projectReport.goodLinks = 0; projectReport.ignoredLinks = 0; projectReport.timedOutLinks = 0; projectReport.elapsedTime = 0; uc_report_display_update (); } /* * initialize the check report structure */ void uc_check_report_force_values (const gint32 all, const gint32 checked, const gint32 bad, const gint32 malformed, const gint32 good, const gint32 ignored, const gint32 timeout, const guint32 elapsedtime) { projectReport.allLinks = all; projectReport.checkedLinks = checked; projectReport.badLinks = bad; projectReport.malformedLinks = malformed; projectReport.goodLinks = good; projectReport.ignoredLinks = ignored; projectReport.timedOutLinks = timeout; projectReport.elapsedTime = elapsedtime; uc_report_display_update (); } /* * update the display check report */ void uc_report_display_update (void) { gchar *tmp = NULL; uc_report_set_checkedlinks (); /* checked links */ if (uc_project_get_check_is_bookmarks ()) tmp = g_strdup_printf (_("Checked links: %d"), projectReport.checkedLinks); else tmp = g_strdup_printf (_("Checked links: %d / %d"), projectReport.checkedLinks, projectReport.allLinks); gtk_label_set_markup (GTK_LABEL (WGET ("mw_label_checked_links")), tmp); g_free (tmp), tmp = NULL; /* good links */ report_set_progress_bar (projectReport.goodLinks, "mw_pb_good_links", _("Good links"), UC_GOOD_LINK_BGCOLOR); /* bad links */ report_set_progress_bar (projectReport.badLinks, "mw_pb_bad_links", _("Bad links"), UC_BAD_LINK_BGCOLOR); /* malformed links */ report_set_progress_bar (projectReport.malformedLinks, "mw_pb_malformed_links", _("Malformed links"), UC_MALFORMED_LINK_BGCOLOR); /* ignored links */ report_set_progress_bar (projectReport.ignoredLinks, "mw_pb_ignored_links", _("Ignored links"), UC_IGNORED_LINK_BGCOLOR); /* timeouts */ report_set_progress_bar (projectReport.timedOutLinks, "mw_pb_timeouts", _("Timeouts"), UC_TIMEOUT_LINK_BGCOLOR); UC_UPDATE_UI; } /* * set label and progression on a report * progress bar */ static void report_set_progress_bar (const guint32 report_item, const gchar * glade_label, const gchar * report_label, const gchar * bg_color) { gint32 percent = 0; GtkWidget *widget = NULL; gchar *tmp = NULL; GdkColor color; percent = (projectReport.checkedLinks) ? (report_item * 100) / projectReport.checkedLinks : 0; widget = WGET (glade_label); /* set progress bar bg color */ gdk_color_parse (bg_color, &color); gtk_widget_modify_bg (widget, GTK_STATE_PRELIGHT, &color); /* set progress bar fg color */ gdk_color_parse ("black", &color); gtk_widget_modify_fg (widget, GTK_STATE_PRELIGHT, &color); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (widget), (gfloat) (percent * 0.01)); tmp = g_strdup_printf ("%s %d (%d%%)", report_label, report_item, percent); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (widget), tmp); g_free (tmp), tmp = NULL; } /* * callback called to display the elapsed * time of a check */ gboolean uc_report_timer_callback (gpointer data) { gchar *tmp = NULL; guint seconds = 0; guint minutes = 0; guint hours = 0; seconds = projectReport.elapsedTime++; minutes = seconds / 60; hours = minutes / 60; tmp = g_strdup_printf (_("Elapsed time: %02d:%02d:%02d"), hours % 24, minutes % 60, seconds % 60); gtk_label_set_markup (GTK_LABEL (WGET ("mw_label_ellapsed_time")), tmp); g_free (tmp), tmp = NULL; return TRUE; } gurlchecker-0.13.1/src/timeout.c0000644000175000017500000001032211327653537013446 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "project.h" #include "timeout.h" /** * UCTODomains: * @count: Number timeouts for a host. * @domain: The host. * @blocked: %TRUE if this host must not be checked anymore. * * Struct to manage timedouted domains filtering. */ typedef struct _UCTODomains UCTODomains; struct _UCTODomains { guint count; gchar *domain; gboolean blocked; }; // Global variable to register timeouted domains to // prevent rescaning them */ static GList *uc_timeout_domains = NULL; static UCTODomains *uc_timeout_domains_new (const gchar * domain); static UCTODomains *uc_timeout_domains_lookup (const gchar * domain); /** * uc_timeout_domains_init: * * Initialisation of timeout_domains stuff. */ void uc_timeout_domains_init (void) { if (uc_timeout_domains != NULL) uc_timeout_domains_free (); } /** * uc_timeout_domains_free: * * Clean all timeout domains stuff. */ void uc_timeout_domains_free (void) { GList *item = NULL; item = g_list_first (uc_timeout_domains); while (item != NULL) { UCTODomains *d = (UCTODomains *) item->data; item = g_list_next (item); g_free (d->domain), d->domain = NULL; g_free (d), d = NULL; } g_list_free (uc_timeout_domains), uc_timeout_domains = NULL; } /** * uc_timeout_domains_new: * @domain: The host. * * Create a new record for the given host. * * Returns: A new #UCTODomains node. */ UCTODomains * uc_timeout_domains_new (const gchar * domain) { UCTODomains *d = NULL; g_return_val_if_fail (domain != NULL, NULL); d = g_new0 (UCTODomains, 1); d->count = 0; d->domain = g_strdup (domain); d->blocked = FALSE; return d; } /** * uc_timeout_domains_lookup: * @domain: The host. * * Returns: A #UCTODomains node. */ static UCTODomains * uc_timeout_domains_lookup (const gchar * domain) { GList *item = NULL; g_return_val_if_fail (domain != NULL, NULL); item = g_list_first (uc_timeout_domains); while (item != NULL) { UCTODomains *d = (UCTODomains *) item->data; item = g_list_next (item); if (!g_ascii_strcasecmp (domain, d->domain)) return (gpointer) d; } return NULL; } /** * uc_timeout_domains_register: * @domain: The host. * * Register a new host. Just increment timeout count if the host * already exist. If not, create a new entry for this host. */ void uc_timeout_domains_register (const gchar * domain) { UCTODomains *item = NULL; g_return_if_fail (domain != NULL); item = uc_timeout_domains_lookup (domain); if (item == NULL) { item = uc_timeout_domains_new (domain); uc_timeout_domains = g_list_append (uc_timeout_domains, (gpointer) item); } else item->count++; if (item->count >= uc_project_get_timeouts_blocked ()) item->blocked = TRUE; } /** * uc_timeout_domains_is_blocked: * @domain: The host. * * Check if a given host must not be checked anymore * because of too many timeouts. * * Returns: %TRUE if the given host must not be checked * anymore. */ gboolean uc_timeout_domains_is_blocked (const gchar * domain) { UCTODomains *item = NULL; gboolean ret = FALSE; g_return_val_if_fail (domain != NULL, FALSE); if (g_ascii_strcasecmp (domain, uc_project_get_current_host ())) { item = uc_timeout_domains_lookup (domain); ret = (item != NULL && item->blocked); } if (ret) uc_utils_debug (" -> %s has been blocked (to many timeouts)!\n", (domain)?domain:""); return ret; } gurlchecker-0.13.1/src/utils.c0000644000175000017500000011726511332536250013122 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "general.h" #include "check.h" #include "connection.h" #include "project.h" #include "utils.h" void uc_utils_clear_container (GtkContainer * container) { GList *list = NULL; list = gtk_container_get_children (container); while (list != NULL) { GtkWidget *w = GTK_WIDGET (list->data); if (!GTK_IS_LABEL (w)) gtk_widget_destroy (w); list = g_list_next (list); } g_list_free (list), list = NULL; } void uc_utils_swap_file_proto_option (const gboolean begin) { static gint file_error_sav = 0; static gint file_check_sav = 0; if (begin) { file_error_sav = uc_project_get_proto_file_is_error (); file_check_sav = uc_project_get_proto_file_check (); uc_project_set_proto_file_is_error (0); uc_project_set_proto_file_check (1); } else { uc_project_set_proto_file_is_error (file_error_sav); uc_project_set_proto_file_check (file_check_sav); } } /* ///////////////////////////////////////////////////////////////////////// * >>>>>>>>>> [BEGIN] Stolen from wget source code * */ #define ISSPACE(x) isspace(x) #define ISDIGIT(x) isdigit(x) #define ISXDIGIT(x) isxdigit (x) #define TOUPPER(x) toupper (x) enum { /* rfc1738 reserved chars, preserved from encoding. */ urlchr_reserved = 1, /* rfc1738 unsafe chars, plus some more. */ urlchr_unsafe = 2 }; #define urlchr_test(c, mask) (urlchr_table[(guchar)(c)] & (mask)) #define URL_RESERVED_CHAR(c) urlchr_test(c, urlchr_reserved) #define URL_UNSAFE_CHAR(c) urlchr_test(c, urlchr_unsafe) /* Convert an ASCII hex digit to the corresponding number between 0 and 15. X should be a hexadecimal digit that satisfies isxdigit; otherwise, the result is undefined. */ #define XDIGIT_TO_NUM(x) ((x) < 'A' ? (x) - '0' : TOUPPER (x) - 'A' + 10) /* Convert a sequence of ASCII hex digits X and Y to a number betewen 0 and 255. Uses XDIGIT_TO_NUM for conversion of individual digits. */ #define X2DIGITS_TO_NUM(h1, h2) ((XDIGIT_TO_NUM (h1) << 4) + XDIGIT_TO_NUM (h2)) #define urlchr_test(c, mask) (urlchr_table[(guchar)(c)] & (mask)) #define URL_RESERVED_CHAR(c) urlchr_test(c, urlchr_reserved) #define URL_UNSAFE_CHAR(c) urlchr_test(c, urlchr_unsafe) /* Shorthands for the table: */ #define R urlchr_reserved #define U urlchr_unsafe #define RU R|U const static guchar urlchr_table[256] = { U, U, U, U, U, U, U, U, /* NUL SOH STX ETX EOT ENQ ACK BEL */ U, U, U, U, U, U, U, U, /* BS HT LF VT FF CR SO SI */ U, U, U, U, U, U, U, U, /* DLE DC1 DC2 DC3 DC4 NAK SYN ETB */ U, U, U, U, U, U, U, U, /* CAN EM SUB ESC FS GS RS US */ U, 0, U, RU, 0, U, R, 0, /* SP ! " # $ % & ' */ 0, 0, 0, R, 0, 0, 0, R, /* ( ) * + , - . / */ 0, 0, 0, 0, 0, 0, 0, 0, /* 0 1 2 3 4 5 6 7 */ 0, 0, RU, R, U, R, U, R, /* 8 9 : ; < = > ? */ RU, 0, 0, 0, 0, 0, 0, 0, /* @ A B C D E F G */ 0, 0, 0, 0, 0, 0, 0, 0, /* H I J K L M N O */ 0, 0, 0, 0, 0, 0, 0, 0, /* P Q R S T U V W */ 0, 0, 0, RU, U, RU, U, 0, /* X Y Z [ \ ] ^ _ */ U, 0, 0, 0, 0, 0, 0, 0, /* ` a b c d e f g */ 0, 0, 0, 0, 0, 0, 0, 0, /* h i j k l m n o */ 0, 0, 0, 0, 0, 0, 0, 0, /* p q r s t u v w */ 0, 0, 0, U, U, U, U, U, /* x y z { | } ~ DEL */ U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, }; #undef R #undef U #undef RU /* The reverse of the above: convert a number in the [0, 16) range to its ASCII representation in hex. The A-F characters are in upper case. */ #define XNUM_TO_DIGIT(x) ("0123456789ABCDEF"[x]) /* Like XNUM_TO_DIGIT, but generates lower-case characters. */ #define XNUM_TO_digit(x) ("0123456789abcdef"[x]) enum copy_method { CM_DECODE, CM_ENCODE, CM_PASSTHROUGH }; extern char *strptime (const char *s, const char *format, struct tm *tm); static inline enum copy_method uc_utils_decide_copy_method (const gchar * p); static time_t uc_utils_mktime_from_utc (struct tm *t); static gint uc_utils_check_date_end (const gchar * p); static inline enum copy_method uc_utils_decide_copy_method (const gchar * p) { if (*p == '%') { if (ISXDIGIT (*(p + 1)) && ISXDIGIT (*(p + 2))) { /* %xx sequence: decode it, unless it would decode to an unsafe or a reserved char; in that case, leave it as is. */ gchar preempt = X2DIGITS_TO_NUM (*(p + 1), *(p + 2)); if (URL_UNSAFE_CHAR (preempt) || URL_RESERVED_CHAR (preempt)) return CM_PASSTHROUGH; else return CM_DECODE; } else /* Garbled %.. sequence: encode `%'. */ return CM_ENCODE; } else if (URL_UNSAFE_CHAR (*p) && !URL_RESERVED_CHAR (*p)) return CM_ENCODE; else return CM_PASSTHROUGH; } gchar * uc_utils_url_reencode_escapes (const gchar * s) { const gchar *p1; gchar *newstr, *p2; gint oldlen, newlen; gint encode_count = 0; gint decode_count = 0; /* First, pass through the string to see if there's anything to do, and to calculate the new length. */ for (p1 = s; *p1; p1++) { switch (uc_utils_decide_copy_method (p1)) { case CM_ENCODE: ++encode_count; break; case CM_DECODE: ++decode_count; break; case CM_PASSTHROUGH: break; } } if (!encode_count && !decode_count) /* The string is good as it is. */ return (gchar *) s; /* C const model sucks. */ oldlen = p1 - s; /* Each encoding adds two characters (hex digits), while each decoding removes two characters. */ newlen = oldlen + 2 * (encode_count - decode_count); newstr = g_malloc0 (newlen + 1); p1 = s; p2 = newstr; while (*p1) { switch (uc_utils_decide_copy_method (p1)) { case CM_ENCODE: { guchar c = *p1++; *p2++ = '%'; *p2++ = XNUM_TO_DIGIT (c >> 4); *p2++ = XNUM_TO_DIGIT (c & 0xf); } break; case CM_DECODE: *p2++ = X2DIGITS_TO_NUM (p1[1], p1[2]); p1 += 3; /* skip %xx */ break; case CM_PASSTHROUGH: *p2++ = *p1++; } } *p2 = '\0'; g_assert (p2 - newstr == newlen); return newstr; } /* Converts struct tm to time_t, assuming the data in tm is UTC rather than local timezone. mktime is similar but assumes struct tm, also known as the "broken-down" form of time, is in local time zone. mktime_from_utc uses mktime to make the conversion understanding that an offset will be introduced by the local time assumption. mktime_from_utc then measures the introduced offset by applying gmtime to the initial result and applying mktime to the resulting "broken-down" form. The difference between the two mktime results is the measured offset which is then subtracted from the initial mktime result to yield a calendar time which is the value returned. tm_isdst in struct tm is set to 0 to force mktime to introduce a consistent offset (the non DST offset) since tm and tm+o might be on opposite sides of a DST change. Some implementations of mktime return -1 for the nonexistent localtime hour at the beginning of DST. In this event, use mktime(tm - 1hr) + 3600. Schematically mktime(tm) --> t+o gmtime(t+o) --> tm+o mktime(tm+o) --> t+2o t+o - (t+2o - t+o) = t Note that glibc contains a function of the same purpose named `timegm' (reverse of gmtime). But obviously, it is not universally available, and unfortunately it is not straightforwardly extractable for use here. Perhaps configure should detect timegm and use it where available. Contributed by Roger Beeman , with the help of Mark Baushke and the rest of the Gurus at CISCO. Further improved by Roger with assistance from Edward J. Sabol based on input by Jamie Zawinski. */ static time_t uc_utils_mktime_from_utc (struct tm *t) { time_t tl, tb; struct tm *tg; tl = mktime (t); if (tl == -1) { t->tm_hour--; tl = mktime (t); if (tl == -1) return -1; /* can't deal with output from strptime */ tl += 3600; } tg = gmtime (&tl); tg->tm_isdst = 0; tb = mktime (tg); if (tb == -1) { tg->tm_hour--; tb = mktime (tg); if (tb == -1) return -1; /* can't deal with output from gmtime */ tb += 3600; } return (tl - (tb - tl)); } /* Check whether the result of strptime() indicates success. strptime() returns the pointer to how far it got to in the string. The processing has been successful if the string is at `GMT' or `+X', or at the end of the string. In extended regexp parlance, the function returns 1 if P matches "^ *(GMT|[+-][0-9]|$)", 0 otherwise. P being NULL (which strptime can return) is considered a failure and 0 is returned. */ static gint uc_utils_check_date_end (const gchar * p) { if (!p) return 0; while (ISSPACE (*p)) ++p; if (!*p || (p[0] == 'G' && p[1] == 'M' && p[2] == 'T') || ((p[0] == '+' || p[0] == '-') && ISDIGIT (p[1]))) return 1; else return 0; } time_t uc_utils_http_atotm (const gchar * time_string) { /* NOTE: Solaris strptime man page claims that %n and %t match white space, but that's not universally available. Instead, we simply use ` ' to mean "skip all WS", which works under all strptime implementations I've tested. */ static const gchar *time_formats[] = { "%a, %d %b %Y %T", /* RFC1123: Thu, 29 Jan 1998 22:12:57 */ "%A, %d-%b-%y %T", /* RFC850: Thursday, 29-Jan-98 22:12:57 */ "%a, %d-%b-%Y %T", /* pseudo-RFC850: Thu, 29-Jan-1998 22:12:57 (google.com uses this for their cookies.) */ "%a %b %d %T %Y" /* asctime: Thu Jan 29 22:12:57 1998 */ }; gint i; struct tm t; /* According to Roger Beeman, we need to initialize tm_isdst, since strptime won't do it. */ t.tm_isdst = 0; /* Note that under foreign locales Solaris strptime() fails to recognize English dates, which renders this function useless. We solve this by being careful not to affect LC_TIME when initializing locale. Another solution would be to temporarily set locale to C, invoke strptime(), and restore it back. This is slow and dirty, however, and locale support other than LC_MESSAGES can mess other things, so I rather chose to stick with just setting LC_MESSAGES. GNU strptime does not have this problem because it recognizes both international and local dates. */ if (!time_string) return -1; for (i = 0; i < G_N_ELEMENTS (time_formats); i++) if (uc_utils_check_date_end (strptime (time_string, time_formats[i], &t))) return uc_utils_mktime_from_utc (&t); /* All formats have failed. */ return -1; } /* <<<<<<<<<< [END] wget source code * ////////////////////////////////// */ /** * uc_utils_get_auth_fields: * @g: a #GladeXML object. * @w_auth_user: GtkWidget containing auth user string * @w_auth_password: GtkWidget containing auth password string * @auth_user: user will be store here. * @auth_password: password will be store here. * @auth_line: authentication line will be store here. * * Get user/password from a authentication dialog and build the line * for basic authentication to pass to HTTP headers. * * See: uc_utils_build_auth_line () * * Returns: %TRUE if user and password have been entered. */ gboolean uc_utils_get_auth_fields (GladeXML * g, GtkWidget * w_auth_user, GtkWidget * w_auth_password, gchar ** auth_user, gchar ** auth_password, gchar ** auth_line) { gchar *text = NULL; gboolean ret = FALSE; /* get user */ if (strlen ( text = (gchar *) gtk_entry_get_text (GTK_ENTRY (w_auth_user)))) { g_strstrip (text); if (strlen (text)) *auth_user = text; } /* get password */ if (strlen ( text = (gchar *) gtk_entry_get_text (GTK_ENTRY (w_auth_password)))) { g_strstrip (text); if (strlen (text)) *auth_password = text; } /* build auth line */ if (*auth_user && *auth_password) { *auth_line = uc_utils_build_auth_line (*auth_user, *auth_password); ret = TRUE; } return ret; } /** * uc_utils_build_auth_line: * @auth_user: user * @auth_password: password * * Build the line for basic authentication to pass to HTTP headers. * * See: uc_utils_get_auth_fields () * * Returns: a new memoty allocated string containing basic authentication * line. */ gchar * uc_utils_build_auth_line (const gchar * auth_user, const gchar * auth_password) { gchar *orig = NULL; gchar *base64 = NULL; gchar *ret = NULL; gint size = 0; orig = g_strconcat (auth_user, ":", auth_password, NULL); base64 = gnet_base64_encode (orig, strlen (orig), &size, FALSE); g_free (orig), orig = NULL; ret = g_strconcat ("Authorization: Basic ", base64, "\r\n", NULL); g_free (base64), base64 = NULL; return ret; } /** * uc_utils_get_meta_refresh_location: * @prop: A #UCLinkProperties node. * @tag: A #UCHTMLTag tag. * * If the page contain a refresh meta tag with a value of 0, replace the * current page URL with it. * * Returns: TRUE if there was a REFRESH META tag. */ gboolean uc_utils_get_meta_refresh_location (UCLinkProperties * prop, UCHTMLTag * tag) { GList *item = NULL; gchar **tmp = NULL; const gchar *p = NULL; gboolean ok = TRUE; gboolean ret = FALSE; if (prop == NULL || prop->metas == NULL) return FALSE; item = g_list_first (prop->metas); while (item != NULL && ok) { UCHTMLTag *meta = (UCHTMLTag *) item->data; if (!g_ascii_strcasecmp (meta->label, "refresh") && meta->value[0] == '0') { tmp = g_strsplit (meta->value, ";", -1); if (tmp[1] != NULL) { if ((p = strchr (tmp[1], '=')) && ++p) { g_free (tag->value), tag->value = NULL; tag->value = g_strdup (p); ret = TRUE; } ok = FALSE; } g_strfreev (tmp), tmp = NULL; } item = g_list_next (item); } return ret; } /** * uc_utils_to_utf8: * @data: String to proceed. * * UTF-8 encode a given string. * Adapted from screem "screem_support_charset_convert ()" * function. * * Returns: A new allocated UTF-8 encoded string. */ gchar * uc_utils_to_utf8 (const gchar * data) { const gchar *end; gchar *ret = NULL; gsize len = 0; if (data != NULL) { if (!g_utf8_validate (data, strlen (data), &end)) { const gchar *charset; const char *encodings_to_try[2] = { 0, 0 }; gboolean utf8 = FALSE; utf8 = g_get_charset (&charset); if (!utf8) encodings_to_try[0] = charset; if (g_ascii_strcasecmp (charset, "ISO-8859-1")) encodings_to_try[1] = "ISO-8859-1"; if (encodings_to_try[0]) ret = g_convert (data, strlen (data), "UTF-8", encodings_to_try[0], NULL, &len, NULL); if (ret == NULL && encodings_to_try[1]) ret = g_convert (data, strlen (data), "UTF-8", encodings_to_try[1], NULL, &len, NULL); } else ret = g_strdup (data); } if (ret == NULL) ret = g_strdup (""); return ret; } /** * uc_utils_get_yesno: * @yesno: A string containing "yes" or "no". * * Proceed a given string to see if it contains "yes" or "no". * * Returns: TRUE if the given string is "yes". */ gboolean uc_utils_get_yesno (const gchar * yesno) { return (gboolean) (!g_ascii_strcasecmp (yesno, "yes")); } /** * uc_utils_debug: * @format: The message format. * @...: The parameters to insert into the format string. * * Display debug informations. */ void uc_utils_debug (const gchar * format, ...) { va_list ap; gchar *s = NULL; if (!uc_project_get_debug_mode ()) return; s = (gchar *) g_malloc0 (2048 + 1); va_start (ap, format); vsnprintf (s, 2048, format, ap); va_end (ap); g_print ("DEBUG: %s", s); g_free (s), s = NULL; } /** * uc_utils_debug_dump_link_properties: * @prop: A #UCLinkProperties node. * * Dump the link properties structure to the standard * output. */ void uc_utils_debug_dump_link_properties (const UCLinkProperties * prop) { if (!uc_project_get_dump_properties ()) return; g_print ("\n\n" " uid: %u\n" " treeview_path: %s\n" " current_path: %s\n" " link_type: %u\n" " user_action: %s\n" " link_value: %s\n" " url: %s\n" " normalized_url: %s\n" " label: %s\n" " protocol: %s\n" " h_name: %s\n" " port: %s\n" " path: %s\n" " args: %s\n" " domain: %s\n" " header_size: %u\n" " depth_level: %u\n" " is_parsable: %u\n" " is_downloadable: %u\n" " checked: %u\n" " bookmark_folder_id: %i\n" " bookmark_id: %i\n" " to_delete: %u\n" " metas: %u\n" " emails: %u\n" " childs: %u\n" " similar_links_parents: %u\n" " bad_extensions: %u\n" " virii: %u\n" " w3c_valid: %u\n", prop->uid, (prop->treeview_path)?prop->treeview_path:"", (prop->current_path)?prop->current_path:"", prop->link_type, (prop->user_action)?prop->user_action:"", (prop->link_value)?prop->link_value:"", (prop->url)?prop->url:"", (prop->normalized_url)?prop->normalized_url:"", (prop->label)?prop->label:"", (prop->protocol)?prop->protocol:"", (prop->h_name)?prop->h_name:"", (prop->port)?prop->port:"", (prop->path)?prop-> path:"", (prop->args)?prop->args:"", (prop->domain)?prop->domain:"", prop->header_size, prop->depth_level, prop->is_parsable, prop->is_downloadable, prop->checked, prop->bookmark_folder_id, prop->bookmark_id, prop->to_delete, (prop->metas != NULL), (prop->emails != NULL), (prop->childs != NULL), (prop->similar_links_parents != NULL), (prop->bad_extensions != NULL), prop->virii, prop->w3c_valid ); } /** * uc_utils_set_userfriendly_treeview_column: * @tv: Tree view to work with. * @position: Position of the column to work with. * * Set a treeview column sortable and resizable. */ void uc_utils_set_userfriendly_treeview_column (const GtkTreeView * tv, const gint32 position) { GtkTreeViewColumn *column = NULL; column = gtk_tree_view_get_column (GTK_TREE_VIEW (tv), position); if (column == NULL) return; gtk_tree_view_column_set_sort_column_id (column, position); gtk_tree_view_column_set_resizable (column, TRUE); } /** * uc_utils_get_file_content: * @path: Path of the file. * @length: Pointer to fill with file length. * * Open and read a file to return its content. * * Returns: A new allocated string with the content of a the file. * The @length argument contain the file length. */ gchar * uc_utils_get_file_content (const gchar * path, gsize * length) { gchar *buffer = NULL; GError *error = NULL; g_file_get_contents (path, &buffer, &(*length), &error); return buffer; } /* FIXME */ /** * uc_utils_email_is_valid: * @email: E-Mail to check. * @check_mx: TRUE if we also must check the MX. * * Check E-Mail syntax and MX if required. * * Returns: The #UCEmailStatus status of the E-Mail. * Return codes are: * - 0: bad syntax (UC_EMAIL_SYNTAX_BAD) * - 1: syntax ok but MX not respond (UC_EMAIL_SYNTAX_MX_BAD) * - 2: syntax ok and MX ok (UC_EMAIL_OK) */ UCEmailStatus uc_utils_email_is_valid (const gchar * email, const gboolean check_mx) { gchar *tmp = NULL; gchar *user = NULL; gchar *domain = NULL; gchar *email_tmp = NULL; gchar *mx = NULL; guint ret = UC_EMAIL_SYNTAX_BAD; uc_utils_split_email (email, &user, &domain); if (strlen (user) == 0 || strlen (domain) == 0) { g_free (user), user = NULL; g_free (domain), domain = NULL; return UC_EMAIL_SYNTAX_BAD; } email_tmp = g_strconcat (user, "@", domain, NULL); /* dirty syntax control :-( */ if ((email_tmp == NULL) || (strlen (email_tmp) == 0) || (strchr ("@.", email_tmp[0])) || (strchr ("@.", email_tmp[strlen (email_tmp) - 1])) || (strchr (email_tmp, ' ')) || ((tmp = strchr (email_tmp, '@')) == NULL) || ((tmp = strchr (email_tmp, '.'))) == NULL) { g_free (email_tmp), email_tmp = NULL; return UC_EMAIL_SYNTAX_BAD; } /* check if MX is alive and listening on * port 25 */ if (check_mx) { mx = uc_utils_get_mx (domain); ret = (uc_utils_mx_is_valid (mx)) ? UC_EMAIL_OK : UC_EMAIL_SYNTAX_MX_BAD; g_free (mx), mx = NULL; } else ret = UC_EMAIL_OK; g_free (user), user = NULL; g_free (domain), domain = NULL; return ret; } /** * uc_utils_split_email: * @email: E-Mail to work with. * @user: Pointer for the "user" part of the E-Mail. * @domain: Pointer for the "domain" part of the E-Mail. * * Fill the two parts of a E-Mail address. @user and @domain argument are * filled with new allocated strings. */ void uc_utils_split_email (const gchar * email, gchar ** user, gchar ** domain) { const gchar *sep = NULL; if ((sep = strchr (email, '@'))) { *user = uc_utils_strdup_delim (email, sep); *domain = uc_utils_strdup_delim (sep + 1, &email[strlen (email)]); } else { *user = g_strdup (""); *domain = g_strdup (""); } } /** * uc_utils_get_mx: * @domain: Domain from which returning the corresponding MX. * * Return the prefered MX for a given domain. * Function adapted from * http://www.sslug.dk/emailarkiv/cprog/1999_10/msg00056.html * * Returns: A new allocated string with the corresponding MX. */ gchar * uc_utils_get_mx (const gchar * domain) { struct rrecord { gint16 r_type; gint16 r_class; guint32 r_ttl; gint16 r_length; }; static gchar out[1000]; guchar query[1000]; HEADER *h; guchar *p; gint32 qcount, acount; gchar buf[1000]; gint32 best; struct rrecord *r; /* ask libc to do the query: * look up 'domain' * class C_IN (internet) * type T_MX (mail exchanger record) * record results in query, max len 1000 */ if (res_search (domain, C_IN, T_MX, query, (int) 1000) < 0) return g_strdup (domain); h = (HEADER *) query; /* skip over queries in packet */ p = query + sizeof (HEADER); qcount = ntohs (h->qdcount); /* # of queries present */ acount = ntohs (h->ancount); /* # of answers present */ /* get past queries */ while (qcount--) { p += dn_expand (query, query + 1000, p, buf, 1000); p += 4; /* qclass, qtype */ } /* now we are in the answers section. Just get the best exchanger, * we don't want to spend too much time messing around */ best = 99999; out[0] = 0; while (acount--) { /* name that this answer refers to */ p += dn_expand (query, query + 1000, p, buf, 1000); r = (struct rrecord *) p; if (htons (r->r_type) == T_MX) { /* MX record */ gint32 pref; guchar *p1 = p + 10; pref = ntohs (*(gint16 *) p1); /* preference */ p1 += 2; if (pref < best) { /* get exchanger name */ dn_expand (query, query + 1000, p1, out, 1000); best = pref; } } p = p + 10 + ntohs (r->r_length); /* skip RR header and data */ } return (out[0]) ? g_strdup (out) : g_strdup (domain); } /** * uc_utils_mx_is_valid: * @mx: The MX to check. * * Check if a given MX is valid or not. * * Returns: TRUE if the given MX is alive and listen on port 25. */ gboolean uc_utils_mx_is_valid (const gchar * mx) { GTcpSocket *socket = NULL; gboolean ret = FALSE; socket = gnet_tcp_socket_connect (mx, 25); if (socket != NULL) { ret = TRUE; gnet_tcp_socket_delete (socket), socket = NULL; } return ret; } /** * uc_utils_get_ip: * @host: Host to work with. * * Return the IP of the given host. if arg is already an IP, * return it as is. * * Returns: A new allocated string with the IP. */ gchar * uc_utils_get_ip (const gchar * host) { struct hostent *serverHostEnt = NULL; gchar *buffer = NULL; if ((serverHostEnt = gethostbyname (host)) != NULL) buffer = g_strdup ( inet_ntoa (*((struct in_addr *) serverHostEnt->h_addr_list[0]))); else if (inet_addr (host) != -1) buffer = g_strdup (host); return buffer; } /** * uc_utils_string_format4display: * @label: Label to format. * @size: Size limit. * * format a given string to be displayed in UI. * * See: uc_utils_string_cut() * * Returns: A new allocated string with the new formated label. */ gchar * uc_utils_string_format4display (const gchar * label, const gsize size) { gchar *ret = NULL; gchar *tmp = NULL; tmp = g_strdup (label); if (tmp != NULL) uc_utils_replacelr (g_strstrip (tmp), ' '); ret = uc_utils_string_cut (tmp, size); g_free (tmp), tmp = NULL; return ret; } /** * uc_utils_string_cut: * @label: Label to cut. * @size: Size limit. * * Cut a given string to fit with the given length. * * See: uc_utils_string_format4display() * * Returns: A new allocated string with the cutted label. */ gchar * uc_utils_string_cut (const gchar * label, const gsize size) { gchar *ret = NULL; gchar *tmp = NULL; tmp = g_strdup (label); /* if (tmp != NULL && size > 0 && strlen (tmp) > size - 3) { gchar *tmp1 = NULL; tmp1 = g_malloc0 (size + 3 + 1); memcpy (tmp1, tmp, size); strncat (tmp1, "...", 3); g_free (tmp), tmp = NULL; tmp = tmp1; } Logic should be changed : - max label size is size + 3 instead of size - if strlen(tmp)==size the trailing /0 won't be copied and strncat will search for the next /0 in the memory before writing... */ if (size >= 3) { if (tmp != NULL && strlen (tmp) > size) { gchar *tmp1 = NULL; tmp1 = g_malloc0 (size + 1); memcpy (tmp1, tmp, size - 3); tmp1[size - 3] = '\0'; strncat (tmp1, "...", 3); g_free (tmp), tmp = NULL; tmp = tmp1; } } else goto cleanout; ret = uc_utils_to_utf8 (tmp); cleanout: g_free (tmp), tmp = NULL; return ret; } /** * uc_utils_replace: * @str: String to work with. * @old: String to replace. * @new: New string to replace old with. * * Replace one or more characters in a given string. * * See: uc_utils_replace1() * * Returns: A new allocated string. */ gchar * uc_utils_replace (const gchar * str, const gchar * old, const gchar * new) { guint32 i = 0; guint32 str_len = 0; guint32 old_len = 0; GString *tmp = NULL; if (!(str && old && new)) { g_warning ("Input data is NULL!"); return NULL; } str_len = strlen (str); old_len = strlen (old); tmp = g_string_new (""); for (i = 0; i < str_len; i++) if (!memcmp (&str[i], old, old_len)) tmp = g_string_append (tmp, new), i += old_len - 1; else tmp = g_string_append_c (tmp, str[i]); return g_string_free (tmp, FALSE); } /** * uc_utils_replace1: * @string: String to work with. * @c1: Character to replace. * @c2: Replacement. * * Replace a caracter by another (but do not allocate new memory for the * result string). * * See: uc_utils_replace() * * Returns: The modified string. */ gchar * uc_utils_replace1 (gchar * string, const gchar c1, const char c2) { gchar *p = string; do { if (*p == c1) *p = c2; } while (*p++); return string; } /** * uc_utils_replacelr: * @string: String to work with. * @c: Character for LR replacement. * * Remove all line return in a given string. * * Returns: The modified string. */ gchar * uc_utils_replacelr (gchar * string, const gchar c) { gchar *p = string; do { if (*p == '\n' || *p == '\r') *p = c; } while (*p++); return string; } /** * uc_utils_convert_uid2file: * @uid: The uid of a #UCLinkProperties node. * * Convert a cache uid to filename. * * Returns: The corresponding path. A new allocated string. */ gchar * uc_utils_convert_uid2file (const guint32 uid) { return g_strdup_printf ("%s/%s/%d", uc_project_get_working_path (), uc_project_get_cache_name (), uid);; } /** * uc_utils_get_gnome_browser_conf: * * Get the current default gnome web browser or "mozilla" if it * does not find it. * * Returns: The current gnome default web browser */ gchar * uc_utils_get_gnome_browser_conf (void) { GConfClient *client = NULL; gchar *ret = NULL; client = gconf_client_get_default (); ret = gconf_client_get_string ( client, "/desktop/gnome/url-handlers/http/command", NULL); g_object_unref (client), client = NULL; return (ret == NULL) ? g_strdup ("mozilla") : ret; } /** * uc_utils_get_gnome_proxy_conf: * @host: A string to fill for the host. * @port: A integer to fill for the port. * * Fill given args with the gconf values for the gnome network proxy * settings. */ void uc_utils_get_gnome_proxy_conf (gchar ** host, guint * port) { GConfClient *client = NULL; client = gconf_client_get_default (); if (gconf_client_get_bool (client, "/system/http_proxy/use_http_proxy", NULL)) { *host = gconf_client_get_string (client, "/system/http_proxy/host", NULL); *port = gconf_client_get_int (client, "/system/http_proxy/port", NULL); if (*port == 0) *port = 8080; } if (*host == NULL) *host = g_strdup (""); g_object_unref (client), client = NULL; } /** * uc_utils_clean_tag_link_value: * @value: String to clean. * * Clean a link value string. * * Returns: A cleaned value. A new allocated string. */ gchar * uc_utils_clean_tag_link_value (gchar * value) { GString *buffer = NULL; const gchar *p = value; g_return_val_if_fail (value != NULL, g_strdup ("")); buffer = g_string_new (""); while (*p) { if (*p != '\'' && *p != '"' && *p != '>') g_string_append_c (buffer, *p); p++; } return g_string_free (buffer, FALSE); } /** * uc_utils_search_string_next: * @buf: A #gpointer to the source buffer. * @str: The string to search. * @limit_char: The char to stop if found. * * Search for the next char after the searched string. * * Returns: If found, retrun a pointer on the next char, * else return the original pointer. */ gpointer uc_utils_search_string_next (gpointer buf, const gchar * str, const gchar limit_char) { gpointer sav = buf; gchar *buffer = (gchar *) buf; if (str == NULL || strlen (str) == 0 || buffer == NULL || strlen (buffer) < strlen (str)) return (gpointer) buf; while (*buffer != '\0' && !uc_utils_memcasecmp (buffer, str) && *buffer != limit_char) buffer++; if (*buffer != limit_char) sav = (buffer += strlen (str)); return sav; } /** * uc_utils_memcasecmp: * @str1: First string to compare. * @str2: Second string to compare. * * Comparison between two strings, based on the length of * the second string. * * Returns: %TRUE if the beginning of %str1 match with %str2. */ gboolean uc_utils_memcasecmp (const gchar * str1, const gchar * str2) { gchar *tmp = NULL; guint32 len = 0; gboolean ret = FALSE; if (str1 == NULL || str2 == NULL) return FALSE; len = strlen (str2); if (strlen (str1) < len) return FALSE; if (memcmp (str1, str2, len) == 0) return TRUE; tmp = g_malloc0 (len + 1); memcpy (tmp, str1, len); ret = (g_ascii_strcasecmp (tmp, str2) == 0); g_free (tmp), tmp = NULL; return ret; } /** * uc_utils_mkdirs: * @path: Path to create. * @create_all: %TRUE if we must create intermediar paths (mkdir -p). * * Make given path -- create intermediate paths if they don't exist -- * and test if we are authorized to write in. * * Returns: %TRUE if all is ok. */ gboolean uc_utils_mkdirs (const gchar * path, const gboolean create_all) { gchar test_path[UC_BUFFER_LEN + 1] = { 0 }; gchar **paths = NULL; gboolean ret = FALSE; gint32 fd; gint32 i = 0; if (create_all) { paths = g_strsplit (path, "/", 255); while (paths[i] != NULL) { if (strlen (paths[i]) > 0) { strncat (test_path, "/", UC_BUFFER_LEN - strlen (test_path)); if (strncat (test_path, paths[i], UC_BUFFER_LEN - strlen (test_path)) == NULL) { g_strfreev (paths), paths = NULL; return FALSE; } mkdir (test_path, S_IRWXU); } i++; } } else { mkdir (path, S_IRWXU); strncat (test_path, path, UC_BUFFER_LEN - strlen (test_path)); } strncat (test_path, "/filetest", UC_BUFFER_LEN - strlen (test_path)); fd = open (test_path, O_CREAT, S_IRUSR | S_IWUSR); if (fd >= 0) { close (fd); unlink (test_path); ret = TRUE; } g_strfreev (paths), paths = NULL; return ret; } /** * uc_utils_rmfiles: * @path: The path in witch deleting files. * * Remove all files in a given directory. */ void uc_utils_rmfiles (const gchar * path) { DIR *dir = NULL; struct dirent *file = NULL; dir = opendir (path); if (dir == NULL) return; while ((file = readdir (dir)) != NULL) { gchar *file_path = g_strconcat (path, "/", file->d_name, NULL); unlink (file_path); g_free (file_path), file_path = NULL; } closedir (dir); } /** * uc_utils_copy: * @src: Source file. * @dest: Destination file. * * Copy a file from %src to %dest. */ void uc_utils_copy (const gchar * src, const gchar * dest) { gchar *buffer = NULL; gsize length = 0; FILE *fd = NULL; g_assert (g_file_test (src, G_FILE_TEST_EXISTS)); g_file_get_contents (src, &buffer, &length, NULL); fd = fopen (dest, "w"); fwrite (buffer, 1, length, fd); fclose (fd); g_free (buffer), buffer = NULL; } /** * uc_utils_copy_files: * @src: Source path. * @dest: Destination path. * * Copy all the file from a given directorie in another. */ void uc_utils_copy_files (const gchar * src, const gchar * dest) { DIR *dir = NULL; struct dirent *file = NULL; FILE *fd = NULL; gchar *file_src = NULL; gchar *file_dest = NULL; dir = opendir (src); if (dir == NULL) return; while ((file = readdir (dir))) { gchar *buffer = NULL; gsize length = 0; if (!strcmp (file->d_name, ".") || !strcmp (file->d_name, "..")) continue; file_src = g_strconcat (src, "/", file->d_name, NULL); file_dest = g_strconcat (dest, "/", file->d_name, NULL); g_file_get_contents (file_src, &buffer, &length, NULL); g_assert (buffer != NULL); fd = fopen (file_dest, "w"); g_assert (fd != NULL); fwrite (buffer, 1, length, fd); fclose (fd); g_free (file_src), file_src = NULL; g_free (file_dest), file_dest = NULL; g_free (buffer), buffer = NULL; } closedir (dir); } /** * uc_utils_rmdirs: * @path: The path to remove. * @delete_all: If %TRUE, remove all intermediar paths. * * Remove a given path -- remove intermediate paths too. */ void uc_utils_rmdirs (const gchar * path, const gboolean delete_all) { gchar **paths = NULL; gint32 i = 0; if (delete_all) { paths = g_strsplit (path, "/", 255); i = uc_utils_vector_length (paths); while (i >= 0) { gchar dir[UC_BUFFER_LEN + 1] = { 0 }; guint j = 0; for (j = 0; j < i; j++) { if (strlen (paths[j]) > 0) { if (strncat (dir, "/", UC_BUFFER_LEN - strlen (dir)) == NULL || strncat (dir, paths[j], UC_BUFFER_LEN - strlen (dir)) == NULL) { g_strfreev (paths), paths = NULL; return; } } } uc_utils_rmfiles (dir); rmdir (dir); i--; } g_strfreev (paths), paths = NULL; } else { uc_utils_rmfiles (path); rmdir (path); } } /** * uc_utils_vector_length: * @data: A vector. * * Calculate the length of the given vector. * * Returns: The length of a given vector. */ guint uc_utils_vector_length (gpointer data) { guint32 i = 0; gchar **vector = (gchar **) data; while (vector[i++]); return --i; } /** * uc_utils_test_socket_open: * @sock: The socket to test. * * Check if a connection if alive or not. * -> taken from wget source code * * Returns: %TRUE if it is alive. */ gboolean uc_utils_test_socket_open (const guint sock) { fd_set check_set; struct timeval to; gboolean ret = FALSE; /* Check if we still have a valid (non-EOF) connection. From Andrew * Maholski's code in the Unix Socket FAQ. */ FD_ZERO (&check_set); FD_SET (sock, &check_set); /* Wait one microsecond */ to.tv_sec = 0; to.tv_usec = 1; /* If we get a timeout, then that means still connected */ if (select (sock + 1, &check_set, NULL, NULL, &to) == 0) { /* Connection is valid (not EOF), so continue */ ret = TRUE; } return ret; } /** * uc_utils_strdup_delim: * @begin: The source position. * @end: The end position. * * Make a string with 2 given pointers. * * Returns: A new allocated string. */ gchar * uc_utils_strdup_delim (const gchar * begin, const gchar * end) { gchar *res = NULL; res = (gchar *) g_malloc0 (end - begin + 1); memcpy (res, begin, end - begin); return res; } /** * uc_utils_strpbrk_or_eos: * @str: A string. * @accept: A string with characters to search for. * * Return a pointer on a given char address or on the end of * the passed string. * * Returns: A pointer on the new offset. */ gchar * uc_utils_strpbrk_or_eos (const gchar * str, const gchar * accept) { gchar *p = NULL; p = strpbrk (str, accept); if (p == NULL) p = (gchar *) str + strlen (str); return p; } /** * uc_utils_get_server_from_header_field: * @field: A string from the "Server" HTTP header field. * * Extract server name/type from a HTTP header "Server" field. * * Returns: A string with the HTTP server. A new allocated string. */ gchar * uc_utils_get_server_from_header_field (gchar * field) { const gchar *b = NULL; const gchar *e = NULL; b = field; e = strchr (b, ' '); if (e == NULL) return g_strdup (b); if (*(e + 1) == '(') e++, e = strchr (e, ')'); return uc_utils_strdup_delim (b, e + 1); } /** * uc_utils_get_string_from_size: * @size: size to convert in string * * Convert a size in string format (with unit indication (KB, MB...)). * * Returns: a string representation of the given size @size. */ gchar * uc_utils_get_string_from_size (const gsize size) { gchar *ret = NULL; if (size < 1024) ret = g_strdup_printf (_("%lu bytes"), (unsigned long) size); else if (size < (1024 * 1024)) ret = g_strdup_printf (_("%.2f KB (%lu bytes)"), (gfloat) (size / 1024.0), (unsigned long) size); else ret = g_strdup_printf (_("%.2f MB (%lu bytes)"), (gfloat) (size / (1024.0 * 1024.0)), (unsigned long) size); return ret; } gboolean uc_utils_str_is_not_alphanum (const gchar *str) { while (*str) { if (g_ascii_isalnum (*str) || g_ascii_isalpha (*str)) return FALSE; ++str; } return TRUE; } /** * uc_utils_ftp_code_search: * @buffer: a buffer containing some FTP output stuff. * @code: the FTP code to search for (string format). * @len: length of the given buffer @buffer. * * Search for a given FTP code in a buffer. * * Returns: %TRUE if the given FTP code @code has been found * in @buffer. */ gboolean uc_utils_ftp_code_search (const gchar * buffer, const gchar * code, const gint len) { if (len < strlen (code)) return FALSE; return (!memcmp (buffer, code, strlen (code))); } gurlchecker-0.13.1/src/uccroco.c0000644000175000017500000001212211336007104013374 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_CROCO #include "general.h" #include "uccroco.h" static void uc_uccroco_css_error (CRDocHandler * a_handler); static void uc_uccroco_init_handler (CRDocHandler * a_handler, UCCroco * croco); static void uc_uccroco_css_start_selector (CRDocHandler * a_handler, CRSelector * a_selector_list); static void uc_uccroco_css_end_selector (CRDocHandler * a_handler, CRSelector * a_selector_list); static void uc_uccroco_css_property (CRDocHandler * a_handler, CRString * a_name, CRTerm * a_expr, gboolean a_important); static void uc_uccroco_css_error (CRDocHandler * a_handler) { UCCroco *croco = (UCCroco *) (a_handler->app_data); gchar *tmp = NULL; if (!croco->log_error) return; croco->error_count++; if (croco->def && croco->def->len) tmp = g_strdup_printf (_("%u - Error after: %s\n"), croco->error_count, croco->def->str); else tmp = g_strdup_printf (_("%u - Unknown error...\n"), croco->error_count); g_string_append (croco->error_buffer, tmp); g_free (tmp), tmp = NULL; croco->is_valid = FALSE; croco->log_error = FALSE; } static void uc_uccroco_css_start_selector (CRDocHandler * a_handler, CRSelector * a_selector_list) { UCCroco *croco = (UCCroco *) (a_handler->app_data); if (croco->def) g_string_free (croco->def, TRUE), croco->def = NULL; croco->def = g_string_new (NULL); croco->log_error = TRUE; } static void uc_uccroco_css_end_selector (CRDocHandler * a_handler, CRSelector * a_selector_list) { UCCroco *croco = (UCCroco *) (a_handler->app_data); if (croco->def) g_string_free (croco->def, TRUE), croco->def = NULL; } static void uc_uccroco_css_property (CRDocHandler * a_handler, CRString * a_name, CRTerm * a_expr, gboolean a_important) { UCCroco *croco = (UCCroco *) (a_handler->app_data); gchar *expr = NULL; gchar *name = NULL; gsize len = 0; if (a_name && a_expr && croco->def) { name = (gchar *) cr_string_peek_raw_str (a_name); len = cr_string_peek_raw_str_len (a_name); g_string_append_len (croco->def, (gchar *) name, len); g_string_append (croco->def, ": "); expr = (gchar *) cr_term_to_string (a_expr); g_string_append_len (croco->def, expr, strlen (expr)); g_free (expr), expr = NULL; g_string_append (croco->def, "; "); } } static void uc_uccroco_init_handler (CRDocHandler * a_handler, UCCroco * croco) { a_handler->app_data = croco; a_handler->start_document = NULL; a_handler->end_document = NULL; a_handler->import_style = NULL; a_handler->namespace_declaration = NULL; a_handler->comment = NULL; a_handler->start_selector = uc_uccroco_css_start_selector; a_handler->end_selector = uc_uccroco_css_end_selector; a_handler->property = uc_uccroco_css_property; a_handler->start_font_face = NULL; a_handler->end_font_face = NULL; a_handler->start_media = NULL; a_handler->end_media = NULL; a_handler->start_page = NULL; a_handler->end_page = NULL; a_handler->ignorable_at_rule = NULL; a_handler->error = uc_uccroco_css_error; a_handler->unrecoverable_error = uc_uccroco_css_error; } UCCroco * uc_uccroco_new (void) { UCCroco *croco = NULL; croco = g_new0 (UCCroco, 1); croco->def = NULL; croco->error_buffer = g_string_new (NULL); croco->error_count = 0; croco->is_valid = TRUE; croco->log_error = TRUE; croco->css_handler = cr_doc_handler_new (); uc_uccroco_init_handler (croco->css_handler, croco); croco->parser = NULL; return croco; } gboolean uc_uccroco_validate (UCCroco * croco, const gchar * buffer) { croco->parser = cr_parser_new_from_buf ((guchar *) buffer, (gulong) strlen (buffer), CR_UTF_8, FALSE); if (cr_parser_set_sac_handler (croco->parser, croco->css_handler) != CR_OK || cr_parser_set_use_core_grammar (croco->parser, FALSE) != CR_OK || cr_parser_parse (croco->parser) != CR_OK) return FALSE; return croco->is_valid; } void uc_uccroco_free (UCCroco ** croco) { if (!croco) return; if ((*croco)->parser) cr_parser_destroy ((*croco)->parser), (*croco)->parser = NULL; if ((*croco)->def) g_string_free ((*croco)->def, TRUE), (*croco)->def = NULL; if ((*croco)->error_buffer) g_string_free ((*croco)->error_buffer, TRUE), (*croco)->error_buffer = NULL; g_free (*croco), *croco = NULL; } #endif gurlchecker-0.13.1/src/application.c0000644000175000017500000035104011521535563014262 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "url.h" #include "cache.h" #include "web_site.h" #include "bookmarks.h" #include "lists.h" #include "search.h" #include "tooltips.h" #include "callbacks.h" #include "utils.h" #include "check.h" #include "timeout.h" #include "connection.h" #include "html_parser.h" #include "ucclam.h" #include "uctidy.h" #include "uccroco.h" #include "cookies.h" #include "application.h" #define PROGRESS_LABEL_MAX_LEN 70 extern char **environ; typedef struct _UCURLsUserActionsData UCURLsUserActionsData; struct _UCURLsUserActionsData { GtkTreeIter iter; GtkListStore *model; }; /* Hash table of the status code properties (message, bg etc.) */ static GHashTable *uc_application_status_code_properties_hash; /* Hash table of the URLs user actions */ static GHashTable *uc_application_urls_user_actions_hash; static void uc_application_menu_init (void); static void uc_application_page_information_dialog_display_links ( const UCLinkProperties *prop); static void uc_application_page_information_dialog_display_emails ( const UCLinkProperties *prop); static void uc_application_page_information_dialog_display_header ( const UCLinkProperties *prop); static void uc_application_page_information_dialog_display_meta_tags ( const UCLinkProperties *prop); static void uc_application_settings_dialog_display_filters_list ( const gchar *glade_name, gpointer items, guint items_size, GtkTreeView **tv, GtkListStore **model); static void uc_application_filters_save_settings (GtkTreeView * treeview, const gchar * path); static void uc_application_status_code_properties_free_cb (gpointer data); static void uc_application_urls_user_actions_free_cb (gpointer data); static gboolean uc_application_cookie_warning_dialog_not_display_cb ( GtkToggleButton * button, gpointer user_data); static void uc_application_action_changed_cb (GtkCellRendererText * renderer, gchar * path, gchar * new_text, GtkListStore * master); static gboolean uc_application_get_urls_user_action_value_cb ( gpointer key, gpointer value, gpointer data); static gint uc_application_fill_urls_user_actions_combo_cb (gconstpointer a, gconstpointer b); static void uc_application_fill_urls_user_actions_combo (GtkListStore ** model); static void uc_application_clean_data (void); void uc_application_build_projects_treeview (void) { enum { UID_COLUMN, ICON_COLUMN, TITLE_COLUMN, N_COLUMNS }; GtkCellRenderer *trenderer = NULL; GtkCellRenderer *prenderer = NULL; GtkWidget *treeview = NULL; GtkTreeViewColumn *column = NULL; treeview = WGET ("opd_treeview"); trenderer = gtk_cell_renderer_text_new (); prenderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Id"), trenderer, "text", UID_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), UID_COLUMN); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("Type"), prenderer, "pixbuf", ICON_COLUMN, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, _("URL"), trenderer, "text", TITLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), TITLE_COLUMN); gtk_tree_view_column_set_sort_column_id (column, TITLE_COLUMN); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); } static void uc_application_action_editing_started_cb (GtkCellRendererText * renderer, gchar * path, gchar * new_text, GtkListStore * master) { gtk_list_store_clear (master); uc_application_fill_urls_user_actions_combo (&master); } static void uc_application_action_changed_cb (GtkCellRendererText * renderer, gchar * path, gchar * new_text, GtkListStore * master) { GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreeSelection *select = NULL; UCLinkProperties *prop = NULL; UCURLsUserActions *action = NULL; gint ret; select = gtk_tree_view_get_selection (treeview); if (select != NULL && gtk_tree_selection_get_selected (select, &model, &iter)) { gtk_tree_model_get (model, &iter, 0, &ret, -1); /* Update URL prop list */ ret = uc_check_treeview_get_selected_row_id (); prop = uc_lists_checked_links_lookup_by_uid (ret); action = uc_application_get_urls_user_action_by_value (new_text); g_free (prop->user_action); prop->user_action = g_strdup (action->id); /* Update main treeview model */ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, ACTION_COLUMN, new_text, -1); if (!uc_project_get_check_is_bookmarks ()) uc_project_set_save (TRUE); } else g_warning ("Error during main treeview action update"); } static gint uc_application_fill_urls_user_actions_combo_cb (gconstpointer a, gconstpointer b) { UCURLsUserActions *aa = (UCURLsUserActions *) a; UCURLsUserActions *bb = (UCURLsUserActions *) b; return (strcasecmp (aa->label, bb->label)); } static void uc_application_fill_urls_user_actions_combo (GtkListStore ** model) { GtkTreeIter iter; GList *item = NULL; GList *list = g_hash_table_get_values (uc_application_urls_user_actions_hash); item = g_list_sort (list, (GCompareFunc) uc_application_fill_urls_user_actions_combo_cb); while (item != NULL) { UCURLsUserActions *a = (UCURLsUserActions *) item->data; item = g_list_next (item); gtk_list_store_append (*model, &iter); gtk_list_store_set (*model, &iter, 0, a->label, -1); } } /** * uc_application_build_url_treeview: * * Build all needed elements for the main URL tree view. */ void uc_application_build_url_treeview (void) { GtkCellRenderer *prenderer = NULL; GtkCellRenderer *trenderer = NULL; GtkCellRenderer *crenderer = NULL; GtkTreeViewColumn *column = NULL; GtkListStore *model = NULL; gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (treestore)); gtk_tree_view_set_headers_visible (treeview, TRUE); /* ID column */ trenderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (treeview, -1, NULL, trenderer, "text", UID_COLUMN, NULL); column = gtk_tree_view_get_column (treeview, UID_COLUMN); gtk_tree_view_column_set_visible (column, FALSE); /* LINK STATUS column */ column = gtk_tree_view_column_new (); prenderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, prenderer, FALSE); gtk_tree_view_column_set_attributes (column, prenderer, "pixbuf", LINK_STATUS_ICON_COLUMN, NULL); /* LINK TYPE column */ prenderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, prenderer, FALSE); gtk_tree_view_column_set_attributes (column, prenderer, "pixbuf", LINK_ICON_COLUMN, NULL); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_append_column (treeview, column); /* SECURITY ALERT column */ prenderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, prenderer, FALSE); gtk_tree_view_column_set_attributes (column, prenderer, "pixbuf", SECURITY_ALERT_ICON_COLUMN, NULL); /* W3C ALERT column */ prenderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, prenderer, FALSE); gtk_tree_view_column_set_attributes (column, prenderer, "pixbuf", W3C_ALERT_ICON_COLUMN, NULL); /* User actions */ crenderer = gtk_cell_renderer_combo_new (); model = gtk_list_store_new (1, G_TYPE_STRING); uc_application_fill_urls_user_actions_combo (&model); g_object_set (G_OBJECT (crenderer), "model", model, "has-entry", TRUE, "editable", TRUE, "text-column", 0, NULL); g_signal_connect (G_OBJECT (crenderer), "edited", G_CALLBACK (uc_application_action_changed_cb), NULL); g_signal_connect (G_OBJECT (crenderer), "editing-started", G_CALLBACK (uc_application_action_editing_started_cb), model); g_signal_connect (G_OBJECT (crenderer), "edited", G_CALLBACK (uc_application_action_changed_cb), NULL); gtk_tree_view_insert_column_with_attributes (treeview, -1, _("Custom action"), crenderer, "text", ACTION_COLUMN, NULL); column = gtk_tree_view_get_column (treeview, ACTION_COLUMN - 3); gtk_tree_view_column_set_sort_column_id (column, ACTION_COLUMN); gtk_tree_view_column_set_reorderable (column, TRUE); // For the moment, we can not manage user actions for bookmarks gtk_tree_view_column_set_visible (column, (!uc_project_get_check_is_bookmarks ())); /* LABEL column */ gtk_tree_view_insert_column_with_attributes (treeview, -1, _("Label"), trenderer, "text", LABEL_COLUMN, NULL); column = gtk_tree_view_get_column (treeview, LABEL_COLUMN - 3); gtk_tree_view_column_set_sort_column_id (column, LABEL_COLUMN); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_reorderable (column, TRUE); /* URL column */ gtk_tree_view_insert_column_with_attributes (treeview, -1, _("URL"), trenderer, "text", URL_COLUMN, NULL); column = gtk_tree_view_get_column (treeview, URL_COLUMN - 3); gtk_tree_view_column_set_sort_column_id (column, URL_COLUMN); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_reorderable (column, TRUE); /* Last modified column */ gtk_tree_view_insert_column_with_attributes (treeview, -1, _("Date"), trenderer, "text", LM_COLUMN, NULL); column = gtk_tree_view_get_column (treeview, LM_COLUMN - 3); gtk_tree_view_column_set_sort_column_id (column, LM_COLUMN); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_reorderable (column, TRUE); gtk_tree_view_set_rules_hint (treeview, TRUE); } void uc_application_reset_menu_types (void) { guint i = 0; gchar *filters[] = { "mwm_document_type", "mwm_image_type", "mwm_frame_type", "mwm_email_type", "mwm_stylesheet_type", NULL }; // Already done if (UC_DISPLAY_TYPE_IS_NONE) return; do { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (WGET (filters[i])), FALSE); } while (filters[++i]); UC_DISPLAY_TYPE_SET_NONE; } void uc_application_reset_menu_status (void) { guint i = 0; gchar *filters[] = { "mwm_display_security_alerts", "mwm_display_w3c_alerts", "mwm_display_goodlinks", "mwm_display_badlinks", "mwm_display_malformedlinks", "mwm_display_timeouts", NULL }; // Already done if (UC_DISPLAY_STATUS_IS_NONE) return; do { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (WGET (filters[i])), FALSE); } while (filters[++i]); UC_DISPLAY_STATUS_SET_NONE; } void uc_application_reset_menu_protocols (void) { guint i = 0; gchar *filters[] = { "mwm_http_protocol", "mwm_https_protocol", "mwm_ftp_protocol", NULL }; // Already done if (UC_DISPLAY_PROTO_IS_NONE) return; do { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (WGET (filters[i])), FALSE); } while (filters[++i]); UC_DISPLAY_PROTO_SET_NONE; } /** * uc_application_main_tree_display_all: * * Display the whole list of checked url in the * main url treeview. */ void uc_application_main_tree_display_all (void) { GtkTreeIter iter; WSENS ("mwm_display", TRUE); uc_application_reset_menu_status (); uc_application_reset_menu_types (); uc_application_reset_menu_protocols (); gtk_tree_store_clear (treestore); uc_check_display_list (uc_lists_checked_links_get (), NULL, iter); } void uc_application_main_tree_apply_filters (const gchar *wname) { GtkTreeIter iter; WSENS ("mwm_display", TRUE); WSENS (wname, TRUE); gtk_tree_store_clear (treestore); uc_check_display_list (uc_lists_checked_links_get (), NULL, iter); } /** * uc_application_main_tree_expand_all: * * Expand the main url treeview. */ void uc_application_main_tree_expand_all (void) { WSENS ("mwm_display", TRUE); gtk_tree_view_expand_all (treeview); } /** * uc_application_main_tree_collapse_all: * * Collapse the main url treeview. */ void uc_application_main_tree_collapse_all (void) { WSENS ("mwm_display", TRUE); gtk_tree_view_collapse_all (treeview); } /** * uc_application_page_information_dialog_display_meta_tags: * @UCLinkProperties: URL list node. * * Display meta tags. */ static void uc_application_page_information_dialog_display_meta_tags ( const UCLinkProperties * prop) { enum { NAME_COLUMN, CONTENT_COLUMN, N_COLUMNS }; GtkTreeIter iter; GtkTreeView *tv = NULL; GtkListStore *model = NULL; GtkCellRenderer *renderer = NULL; GtkWidget *scroll = NULL; GList *item = NULL; scroll = WGET ("pid_general_scrolled_down"); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); item = g_list_first (prop->metas); while (item != NULL) { UCHTMLTag *lp = (UCHTMLTag *) item->data; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, NAME_COLUMN, (gchar *) lp->label, CONTENT_COLUMN, (gchar *) lp->value, -1); item = g_list_next (item); } tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (model))); g_object_unref (model), model = NULL; renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (tv, -1, _("Name"), renderer, "text", NAME_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, NAME_COLUMN); gtk_tree_view_insert_column_with_attributes (tv, -1, _("Content"), renderer, "text", CONTENT_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, CONTENT_COLUMN); gtk_tree_view_set_rules_hint (tv, TRUE); uc_utils_clear_container (GTK_CONTAINER (scroll)); gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (tv)); gtk_widget_show_all (scroll); } /** * uc_application_open_project_dialog_show: * * Show the open project dialog. */ void uc_application_open_project_dialog_show (void) { enum { UID_COLUMN, ICON_COLUMN, TITLE_COLUMN, COMBO_COLUMN, N_COLUMNS }; GtkTreeIter iter; GtkWidget *treeview = NULL; GList *list = NULL; GtkWidget *dialog = NULL; GtkListStore *treestore = NULL; if (!uc_project_save_all ()) return; dialog = WGET ("open_project_dialog"); treeview = WGET ("opd_treeview"); if ((treestore = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (treeview))))) g_object_unref (treestore), treestore = NULL; treestore = gtk_list_store_new (N_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); list = g_list_first (uc_project_get_projects_list ()); while (list != NULL) { UCProjectProjects *item = (UCProjectProjects *) list->data; GdkPixbuf *icon = NULL; list = g_list_next (list); icon = uc_project_get_type_icon (item->type); gtk_list_store_append (treestore, &iter); gtk_list_store_set (treestore, &iter, UID_COLUMN, item->id, ICON_COLUMN, icon, TITLE_COLUMN, item->title, -1); g_object_unref (icon), icon = NULL; } gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (treestore)); gtk_widget_show_all (dialog); } /** * uc_application_input_file_dialog: * @text: The text to display. * @title: Title of the popup. * * Show a prompt popup to input a filename or directory. * * Returns: The user string. This is a newly allocated string. */ gchar * uc_application_input_file_dialog (const gchar * title, const gchar * text) { GtkWidget *widget = NULL; GtkWidget *dialog = NULL; gchar *ret = NULL; const gchar *input_text = NULL; gint res = 0; dialog = WGET ("input_file_dialog"); gtk_window_set_title (GTK_WINDOW (dialog), title); widget = WGET ("ifd_label"); gtk_label_set_text (GTK_LABEL (widget), text); gtk_widget_show_all (dialog); again: res = gtk_dialog_run (GTK_DIALOG (dialog)); widget = WGET ("ifd_input_text"); input_text = gtk_entry_get_text (GTK_ENTRY (widget)); if (res == GTK_RESPONSE_OK && strlen (input_text) == 0) goto again; else { ret = g_strdup (input_text); gtk_widget_hide (dialog); } return ret; } /** * uc_application_input_dialog: * @text: The text to display. * @title: title of the popup. * * Show a prompt popup. * * Returns: The user string. This is a newly allocated string. */ gchar * uc_application_input_dialog (const gchar * title, const gchar * text) { GtkWidget *widget = NULL; gchar *ret = NULL; const gchar *input_text = NULL; gint res = 0; GtkWidget *dialog = NULL; dialog = WGET ("input_dialog"); gtk_window_set_title (GTK_WINDOW (dialog), title); widget = WGET ("id_label"); gtk_label_set_text (GTK_LABEL (widget), text); widget = WGET ("id_input_text"); gtk_entry_set_text (GTK_ENTRY (widget), ""); gtk_widget_show_all (dialog); res = gtk_dialog_run (GTK_DIALOG (dialog)); widget = WGET ("id_input_text"); input_text = gtk_entry_get_text (GTK_ENTRY (widget)); if (res == GTK_RESPONSE_OK) ret = g_strdup (input_text); gtk_widget_hide (dialog); return ret; } /** * uc_application_project_information_dialog_show: * * Show the project properties dialog. * * Returns: TRUE if project must be saved. */ gboolean uc_application_project_information_dialog_show (void) { GtkWidget *widget = NULL; gboolean ret = FALSE; gint res = 0; GtkWidget *dialog = NULL; GtkTextBuffer *buffer = NULL; dialog = WGET ("project_information_dialog"); widget = WGET ("pid_description"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (buffer, uc_project_get_description (), -1); widget = WGET ("pid_title"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_title ()); gtk_widget_show_all (dialog); again: res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_OK) { if (!uc_project_save_properties ()) goto again; ret = TRUE; } else gtk_widget_hide (dialog); return ret; } // FIXME static UCCookiesAction cookie_warning_action; static gboolean uc_application_cookie_warning_dialog_not_display_cb (GtkToggleButton *button, gpointer user_data) { gboolean val = !gtk_toggle_button_get_active (button); switch (cookie_warning_action) { // Block Add warn case UC_COOKIES_ACTION_ADD: uc_project_set_cookies_warn_added (val); break; // Block Update warn case UC_COOKIES_ACTION_UPDATE: uc_project_set_cookies_warn_updated (val); break; // Block Delete warn case UC_COOKIES_ACTION_DELETE: uc_project_set_cookies_warn_deleted (val); break; default: g_assert_not_reached (); } return FALSE; } /** * uc_application_cookie_warning_dialog_show: * @server: hostname. * @page: page name. * @label: dialog's label. * @name: cookie's name. * @value: cookie's value. * @path: cookie's path. * @expires: expirationdate. * @action: cookies action. * * Dialog for accepting/refusing a cookie. * * Returns: %TRUE if the cookie must be accepted. */ gboolean uc_application_cookie_warning_dialog_show (const gchar * server, const gchar * page, const gchar * label, gchar ** name, gchar ** value, gchar ** path, gchar ** expires, const UCCookiesAction action) { GtkWidget *widget = NULL; GtkWidget *w = NULL; gint ret = 0; static gulong handler_id = 0; cookie_warning_action = action; w = WGET ("cookie_warning_dialog"); widget = WGET ("cwd_bt_ok"); gtk_window_set_focus (GTK_WINDOW (w), widget); widget = WGET ("cwd_server"); gtk_entry_set_text (GTK_ENTRY (widget), server); widget = WGET ("cwd_page"); gtk_entry_set_text (GTK_ENTRY (widget), page); widget = WGET ("cwd_label"); gtk_label_set_markup (GTK_LABEL (widget), label); widget = WGET ("cwd_expires"); gtk_entry_set_text (GTK_ENTRY (widget), (*expires) ? *expires : _("At the end of this session")); widget = WGET ("cwd_name"); gtk_entry_set_text (GTK_ENTRY (widget), *name); widget = WGET ("cwd_value"); gtk_entry_set_text (GTK_ENTRY (widget), *value); widget = WGET ("cwd_path"); gtk_entry_set_text (GTK_ENTRY (widget), *path); widget = WGET ("cwd_stop_display"); WSENS ("cwd_name", TRUE); WSENS ("cwd_path", TRUE); WSENS ("cwd_value", TRUE); WSENS ("cwd_expires", TRUE); if (!handler_id) handler_id = g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (uc_application_cookie_warning_dialog_not_display_cb), NULL); g_signal_handler_block ((gpointer) widget, handler_id); if (action == UC_COOKIES_ACTION_ADD) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !uc_project_get_cookies_warn_added ()); } if (action == UC_COOKIES_ACTION_UPDATE) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !uc_project_get_cookies_warn_updated ()); WSENS ("cwd_name", FALSE); WSENS ("cwd_path", FALSE); } else if (action == UC_COOKIES_ACTION_DELETE) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !uc_project_get_cookies_warn_deleted ()); WSENS ("cwd_name", FALSE); WSENS ("cwd_path", FALSE); WSENS ("cwd_value", FALSE); WSENS ("cwd_expires", FALSE); } g_signal_handler_unblock ((gpointer) widget, handler_id); ret = gtk_dialog_run (GTK_DIALOG (w)); /* cancel check */ if (ret == GTK_RESPONSE_CANCEL) uc_check_cancel_set_value (TRUE); if (ret == GTK_RESPONSE_ACCEPT && action != UC_COOKIES_ACTION_DELETE) { g_free (*name), *name = NULL; widget = WGET ("cwd_name"); *name = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); g_free (*value), *value = NULL; widget = WGET ("cwd_value"); *value = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); g_free (*path), *path = NULL; widget = WGET ("cwd_path"); *path = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); widget = WGET ("cwd_expires"); if (strcmp (gtk_entry_get_text (GTK_ENTRY (widget)), _("At the end of this session")) != 0) { g_free (*expires), *expires = NULL; *expires = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); } } gtk_widget_hide (w); return (ret == GTK_RESPONSE_ACCEPT); } /** * uc_application_auth_dialog_show: * @title: string returned by the remote host when * requested authentication. * * Show the basic authentication dialog. * * Returns: TRUE if both user and password have been * entered. * */ gboolean uc_application_auth_dialog_show (const gchar * title, const gchar *host) { GtkWidget *widget = NULL; GtkWidget *w = NULL; gchar *tmp = NULL; gboolean ret = FALSE; w = WGET ("auth_dialog"); if (title) { gchar **real_title = g_strsplit (title, "=", 2); tmp = g_strdup_printf (_("Enter login and password for %s at %s"), real_title[1], host); widget = WGET ("ad_title"); gtk_label_set_text (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; g_strfreev (real_title), real_title = NULL; } gtk_widget_show_all (w); again: widget = WGET ("ad_stop_display"); uc_project_set_prompt_auth ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); if (gtk_dialog_run (GTK_DIALOG (w)) == GTK_RESPONSE_OK) { gchar *auth_user = NULL; gchar *auth_password = NULL; gchar *auth_line = NULL; if (uc_utils_get_auth_fields (glade, WGET ("ad_auth_user"), WGET ("ad_auth_password"), &auth_user, &auth_password, &auth_line)) { uc_project_set_auth_line (auth_line); g_free (auth_line), auth_line = NULL; ret = TRUE; } else if (uc_project_get_prompt_auth ()) goto again; } gtk_widget_hide (w); return ret; } /** * uc_application_new_search_dialog_show: * * Show the search dialog. */ void uc_application_new_search_dialog_show (void) { GtkWidget *dialog = NULL; dialog = WGET ("new_search_dialog"); /* WSENS ("nsd_search_status_code", FALSE); WSENS ("nsd_search_links_name", FALSE); WSENS ("nsd_search_meta_content", FALSE); WSENS ("nsd_search_emails", FALSE); */ gtk_widget_show_all (dialog); } /** * uc_application_search_dialog_show: * * Show the search dialog. */ void uc_application_search_dialog_show (void) { GtkWidget *dialog = NULL; dialog = WGET ("search_dialog"); gtk_widget_show_all (dialog); } void uc_application_w3c_validate (void) { UCLinkProperties *prop = NULL; gint32 id = 0; gsize size = 0; gchar *buffer = NULL; gchar *path = NULL; gchar *content_type = NULL; gboolean validate = TRUE; id = uc_check_treeview_get_selected_row_id (); if (id <= 0) return; validate = TRUE; prop = uc_lists_checked_links_lookup_by_uid (id); content_type = g_hash_table_lookup (prop->header, UC_CONTENT_TYPE); path = uc_utils_convert_uid2file (id); buffer = uc_utils_get_file_content (path, &size); g_free (path), path = NULL; #ifdef ENABLE_CROCO if (validate && uc_check_content_type_w3c_accepted ("css", prop->path, content_type)) { UCCroco *croco = NULL; croco = uc_uccroco_new (); if (croco && uc_uccroco_validate (croco, buffer) >= 0) { if (croco->error_count) uc_application_buffer_show ( _("W3C CSS validation result (libcroco)"), (const gchar *) croco->error_buffer->str); else uc_application_buffer_show ( _ ("W3C CSS validation result (libcroco)"), _("This is a valid stylesheet.")); } else uc_application_dialog_show ( _("A problem occured while using Croco library.\n" "Please check your configuration or your libcroco " "version.\n\n"), GTK_MESSAGE_ERROR); uc_uccroco_free (&croco); validate = FALSE; } #endif #ifdef ENABLE_TIDY if (validate && uc_check_content_type_w3c_accepted ("html", prop->path, content_type)) { UCTidy *tidy = NULL; tidy = uc_uctidy_new (); if (tidy && uc_uctidy_validate (tidy, buffer) >= 0) uc_application_buffer_show ( _("W3C HTML validation result (libtidy)"), (const gchar *) tidy->errbuf.bp); else uc_application_dialog_show ( _("A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy " "version.\n\n"), GTK_MESSAGE_ERROR); uc_uctidy_free (&tidy); validate = FALSE; } #endif g_free (buffer), buffer = NULL; } /** * uc_application_page_information_dialog_show: * * Show the properties dialog. */ void uc_application_page_information_dialog_show (void) { gint32 id = 0; UCLinkProperties *prop = NULL; GtkWidget *widget = NULL; GtkWidget *dialog = NULL; id = uc_check_treeview_get_selected_row_id (); if (id <= 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); /* do not display link information for bookmark's * folders */ if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) return; dialog = WGET ("page_information_dialog"); uc_application_page_information_dialog_display_header (prop); if (prop->metas != NULL) { widget = WGET ("pid_meta_label"); gtk_widget_show (widget); widget = WGET ("pid_meta_box"); gtk_widget_show (widget); uc_application_page_information_dialog_display_meta_tags (prop); } else { widget = WGET ("pid_meta_label"); gtk_widget_hide (widget); widget = WGET ("pid_meta_box"); gtk_widget_hide (widget); } widget = WGET ("pid_information_notebook"); gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0); uc_utils_clear_container (GTK_CONTAINER (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 1))); uc_utils_clear_container (GTK_CONTAINER (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 2))); gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 1)); gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 2)); if (prop->link_type == LINK_TYPE_IMAGE || prop->link_type == LINK_TYPE_EMAIL || prop->all_links == NULL) { gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 2)); gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 1)); } else { uc_application_page_information_dialog_display_links (prop); if (prop->emails != NULL) uc_application_page_information_dialog_display_emails (prop); else gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (widget), 2)); } gtk_widget_show (dialog); } /** * uc_application_display_search_message: * @label_pos: Position of the given message. * @message: Message to display. * * Display messages in the progess dialog during * the search. */ void uc_application_display_search_message (const guint label_pos, const gchar * message) { GtkWidget *widget = NULL; gchar *tmp = NULL; if (uc_search_get_exit () || !message) return; tmp = (label_pos != UC_CHECK_MESSAGE_LABEL_FIRST) ? uc_utils_string_format4display (message, UC_LABEL_DISPLAY_MAX_LEN) : g_strdup (message); switch (label_pos) { case UC_CHECK_MESSAGE_LABEL_FIRST: widget = WGET ("sd_search_label_first"); break; case UC_CHECK_MESSAGE_LABEL_SECOND: widget = WGET ("sd_search_label_second"); break; default: g_free (tmp), tmp = NULL; g_return_if_reached (); } if (label_pos == UC_CHECK_MESSAGE_LABEL_FIRST) gtk_label_set_markup (GTK_LABEL (widget), tmp); else gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; } /** * uc_application_display_state_message: * @label_pos: Position of the given message. * @message: Message to display. * * Display messages in the progess dialog during * the check process */ void uc_application_display_state_message (const guint label_pos, const gchar * message) { GtkWidget *widget = NULL; gchar *tmp = NULL; if (!message) return; tmp = (label_pos != UC_CHECK_MESSAGE_LABEL_THIRD) ? uc_utils_string_format4display (message, UC_LABEL_DISPLAY_MAX_LEN) : g_strdup (message); switch (label_pos) { case UC_CHECK_MESSAGE_LABEL_FIRST: widget = WGET ("pd_first_label"); break; case UC_CHECK_MESSAGE_LABEL_SECOND: widget = WGET ("pd_second_label"); break; case UC_CHECK_MESSAGE_LABEL_THIRD: widget = WGET ("pd_third_label"); break; default: g_free (tmp), tmp = NULL; g_return_if_reached (); } if (label_pos == UC_CHECK_MESSAGE_LABEL_THIRD) gtk_label_set_markup (GTK_LABEL (widget), tmp); else gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; } /** * uc_application_display_informations: * @treeview: Tree view to work with. * * Search the header of a given url * in the urls list to display it. */ void uc_application_display_informations (GtkTreeView * treeview) { gint32 id = 0; UCLinkProperties *prop = NULL; UCStatusCode *sc = NULL; gchar *tmp_str = NULL; GtkTextBuffer *buffer_information = NULL; GtkTextBuffer *buffer_security = NULL; GtkWidget *text_informations = NULL; GtkWidget *security = NULL; GtkWidget *location = NULL; GtkWidget *referrer = NULL; id = uc_check_treeview_get_selected_row_id (); if (id < 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); text_informations = WGET ("mw_text_informations"); security = WGET ("mw_security"); location = WGET ("mw_location"); referrer = WGET ("mw_referrer"); /* empty the buffer if the selected item is a bookmark's * folder */ buffer_information = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_informations)); buffer_security = gtk_text_view_get_buffer (GTK_TEXT_VIEW (security)); if (prop->link_type != LINK_TYPE_BOOKMARK_FOLDER) { const gchar *status_code = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); sc = uc_application_get_status_code_properties (status_code); tmp_str = g_strconcat ("", sc->message, " (", status_code, ")", NULL); gtk_label_set_markup (GTK_LABEL (WGET ("mw_label_informations_message")), tmp_str); g_free (tmp_str), tmp_str = NULL; if (prop->bad_extensions) tmp_str = g_strdup (_("Found Bad extensions.\n")); else if (prop->virii) tmp_str = g_strconcat (_("Found Virus: "), prop->virname, NULL); else tmp_str = g_strdup (""); gtk_text_buffer_set_text (buffer_security, tmp_str, -1); g_free (tmp_str), tmp_str = NULL; gtk_entry_set_text (GTK_ENTRY (location), prop->url); gtk_entry_set_text (GTK_ENTRY (referrer), (prop->parent && prop->parent->url) ? prop->parent->url : _("No referrer")); gtk_text_buffer_set_text (buffer_information, sc->description, -1); } else { gtk_label_set (GTK_LABEL (WGET ("mw_label_informations_message")), " "); gtk_text_buffer_set_text (buffer_security, " ", -1); gtk_entry_set_text (GTK_ENTRY (location), " "); gtk_entry_set_text (GTK_ENTRY (referrer), " "); gtk_text_buffer_set_text (buffer_information, " ", -1); } } /** * uc_application_treeview_activate_popup: * @event: Event. * * Display the treview popup menu. */ void uc_application_treeview_activate_popup (GdkEventButton * event) { GtkWidget *popup = NULL; gchar *status_code = NULL; gchar *content_type = NULL; gint32 id = 0; UCLinkProperties *prop = NULL; id = uc_check_treeview_get_selected_row_id (); if (id < 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); // Do not display information for bookmarks folders if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) return; status_code = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); content_type = g_hash_table_lookup (prop->header, UC_CONTENT_TYPE); popup = WGET ("treeview_popup_menu"); gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL, event->button, event->time); // Activate/deactivate appropriate items WSENS ("mwpopup_menu_check_email_mx", TRUE); WSENS ("mwpopup_view_online", TRUE); WSENS ("mwpopup_refresh_link", TRUE); WSENS ("mwpopup_view_link_content", TRUE); WSENS ("mwpopup_w3c_validate", FALSE); WSENS ("mwpopup_image_preview", TRUE); WSENS ("mwpopup_view_parent_page_online", TRUE); WSENS ("mwpopup_delete_link", FALSE); WSENS ("mwpopup_view_bad_extensions", (prop->bad_extensions != NULL)); WSENS ("mwpopup_view_similar_links_locations", (prop->similar_links_parents != NULL)); WSENS ("mwpopup_refresh_branch", (prop->childs != NULL)); WSENS ("mwpopup_refresh_parent", (prop->depth_level != 0)); if (prop->link_type != LINK_TYPE_EMAIL) WSENS ("mwpopup_menu_check_email_mx", FALSE); else { WSENS ("mwpopup_view_online", FALSE); WSENS ("mwpopup_refresh_link", FALSE); } if (!uc_check_status_is_good (status_code) || !prop->is_downloadable || (prop->link_type != LINK_TYPE_HREF && prop->link_type != LINK_TYPE_FRAME && prop->link_type != LINK_TYPE_CSS)) WSENS ("mwpopup_view_link_content", FALSE); else if (uc_project_get_w3c_checks ("any")) { if ((uc_project_get_w3c_checks ("css") && uc_check_content_type_w3c_accepted ("css", prop->path, content_type)) || (uc_project_get_w3c_checks ("html") && uc_check_content_type_w3c_accepted ("html", prop->path, content_type))) WSENS ("mwpopup_w3c_validate", TRUE); } if (uc_project_get_speed_check () || !uc_project_get_download_images_content () || (prop->link_type != LINK_TYPE_IMAGE || !uc_check_status_is_good (status_code))) WSENS ("mwpopup_image_preview", FALSE); if (uc_project_get_check_is_bookmarks ()) { WSENS ("mwpopup_refresh_parent", FALSE); WSENS ("mwpopup_view_similar_links_locations", FALSE); WSENS ("mwpopup_view_parent_page_online", FALSE); WSENS ("mwpopup_delete_link", TRUE); } if (uc_check_status_is_malformed (status_code)) { WSENS ("mwpopup_view_online", FALSE); WSENS ("mwpopup_refresh_link", FALSE); } #ifndef ENABLE_GNUTLS // Do not refresh HTTPS links if no SSL support if (strcmp (prop->protocol, UC_PROTOCOL_HTTPS) == 0) { WSENS ("mwpopup_refresh_link", FALSE); WSENS ("mwpopup_refresh_branch", FALSE); WSENS ("mwpopup_refresh_parent", FALSE); } #endif gtk_widget_show_all (popup); } /** * uc_application_remove_paths: * * Remove all application paths */ void uc_application_remove_paths (void) { gchar *final_path = NULL; final_path = g_strconcat (uc_project_get_working_path (), "/", uc_project_get_cache_name (), NULL); uc_utils_rmdirs (final_path, FALSE); g_free (final_path), final_path = NULL; } /** * uc_application_settings_dialog_display_filters_list: * @glade: the appropriate glade pointer. * @elements: a vector of items to display. * @items_size: size of the vector. * @tv: tree view to display to work with. * @model: list store to work with. * * Display list of elements to reject. */ static void uc_application_settings_dialog_display_filters_list (const gchar * glade_name, gpointer elements, guint items_size, GtkTreeView ** tv, GtkListStore ** model) { enum { NAME_COLUMN, N_COLUMNS }; gchar **items = NULL; GtkWidget *scroll = NULL; GtkTreeIter iter; GtkCellRenderer *renderer; guint i = 0; scroll = WGET (glade_name); if (*model != NULL) g_object_unref (*model), *model = NULL; *model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING); if (elements != NULL) { items = (gchar **) elements; for (i = 0; i < items_size; i++) { gtk_list_store_append (*model, &iter); gtk_list_store_set (*model, &iter, NAME_COLUMN, (gchar *) items[i], -1); } } if (*tv && gtk_tree_view_get_model (*tv)) gtk_widget_destroy (GTK_WIDGET (*tv)); *tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (*model))); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (*tv), -1, _("Name"), renderer, "text", NAME_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (*tv, NAME_COLUMN); gtk_tree_view_set_rules_hint (*tv, TRUE); gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (*tv)); gtk_widget_show_all (scroll); } /** * uc_application_page_information_dialog_display_header: * @prop: #UCLinkProperties node of the element to work with. * * Display header information. */ static void uc_application_page_information_dialog_display_header (const UCLinkProperties * prop) { GtkWidget *widget = NULL; gchar *tmp = NULL; guint status_tmp = 0; /* URL */ widget = WGET ("pid_location"); tmp = (strlen (prop->url) > 0) ? g_strdup (prop->url) : g_strdup (_("Missing URL")); gtk_entry_set_text (GTK_ENTRY (widget), tmp); g_free (tmp), tmp = NULL; /* Link type */ widget = WGET ("pid_link_type"); tmp = g_strdup_printf ("(%s)", uc_check_get_link_type_label (prop->link_type)); gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; widget = WGET ("pid_link_type_image"); gtk_image_set_from_file (GTK_IMAGE (widget), uc_check_get_link_type_icon_path (prop->link_type, prop->protocol)); /* referring URL */ widget = WGET ("pid_referrer"); /* there is no parent url for a local file or bookmark */ if (!uc_project_get_check_is_bookmarks ()) tmp = (prop->parent && prop->parent->url) ? g_strdup (prop->parent->url) : g_strdup (_("No referrer")); else tmp = g_strdup (_("No referrer")); gtk_entry_set_text (GTK_ENTRY (widget), tmp); g_free (tmp), tmp = NULL; /* server type */ widget = WGET ("pid_server_type"); tmp = g_hash_table_lookup (prop->header, UC_SERVER); tmp = (tmp == NULL) ? g_strdup (_("Not specified")) : uc_utils_get_server_from_header_field (tmp); gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; /* status */ widget = WGET ("pid_status_image"); gtk_image_set_from_pixbuf (GTK_IMAGE (widget), prop->status_icon); widget = WGET ("pid_status"); if ((tmp = g_hash_table_lookup (prop->header, UC_HEADER_STATUS)) == NULL) tmp = g_strdup_printf ("(%s)", _("Unknown")); else { status_tmp = atoi (tmp); if (status_tmp >= UC_STATUS_CODE_INTERNALS_LIMIT) tmp = g_strdup (_("(gURLChecker internals)")); else tmp = g_strdup_printf ("(%s)", tmp); } gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; /* cached */ widget = WGET ("pid_source"); gtk_label_set (GTK_LABEL (widget), (prop->is_downloadable) ? _("Disk Cache") : _("Not cached")); g_free (tmp), tmp = NULL; /* content length */ widget = WGET ("pid_size"); tmp = g_hash_table_lookup (prop->header, UC_CONTENT_LENGTH); if (tmp == NULL) tmp = g_strdup (_("Not specified")); else tmp = uc_utils_get_string_from_size (atol (tmp)); gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; /* last modified */ widget = WGET ("pid_modified"); tmp = g_strdup (g_hash_table_lookup (prop->header, UC_LAST_MODIFIED)); if (tmp == NULL) tmp = g_strdup (_("Not specified")); gtk_label_set (GTK_LABEL (widget), tmp); g_free (tmp), tmp = NULL; } /** * uc_application_page_information_dialog_display_emails: * @prop: #UCLinkProperties node of the element to work with. * * Display page information emails list. */ static void uc_application_page_information_dialog_display_emails (const UCLinkProperties * prop) { enum { LABEL_COLUMN, URL_COLUMN, N_COLUMNS }; GtkTreeView *tv; GtkTreeIter iter; GtkListStore *model; GtkCellRenderer *renderer; GList *item = NULL; GtkWidget *scroll = NULL; scroll = WGET ("pid_emails_scrolled"); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); item = g_list_first (prop->emails); while (item != NULL) { UCHTMLTag *link = (UCHTMLTag *) item->data; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, URL_COLUMN, link->value, LABEL_COLUMN, link->label, -1); item = g_list_next (item); } tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (model))); g_object_unref (model), model = NULL; renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (tv, -1, _("E-Mail"), renderer, "text", URL_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, URL_COLUMN); gtk_tree_view_insert_column_with_attributes (tv, -1, _("Label"), renderer, "text", LABEL_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, LABEL_COLUMN); gtk_tree_view_set_rules_hint (tv, TRUE); gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (tv)); gtk_widget_show_all (scroll); } /** * uc_application_page_information_dialog_display_links: * @prop: #UCLinkProperties node of the element to work with. * * Display page information urls list. */ static void uc_application_page_information_dialog_display_links (const UCLinkProperties * prop) { enum { LABEL_COLUMN, URL_COLUMN, N_COLUMNS }; GtkTreeView *tv; GtkTreeIter iter; GtkListStore *model; GtkCellRenderer *renderer; GList *item = NULL; GtkWidget *scroll = NULL; gchar *label = NULL; gchar *value = NULL; scroll = WGET ("pid_links_scrolled"); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); gtk_list_store_clear (model); item = g_list_first (prop->all_links); while (item != NULL) { UCHTMLTag *link = (UCHTMLTag *) item->data; label = uc_utils_string_format4display (link->label, UC_LABEL_DISPLAY_MAX_LEN); value = uc_utils_string_format4display (link->value, UC_LABEL_DISPLAY_MAX_LEN); gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, URL_COLUMN, value, LABEL_COLUMN, label, -1); g_free (value), value = NULL; g_free (label), label = NULL; item = g_list_next (item); } tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (model))); g_object_unref (model), model = NULL; renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (tv, -1, _("URL"), renderer, "text", URL_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, URL_COLUMN); gtk_tree_view_insert_column_with_attributes (tv, -1, _("Label"), renderer, "text", LABEL_COLUMN, NULL); uc_utils_set_userfriendly_treeview_column (tv, LABEL_COLUMN); gtk_tree_view_set_rules_hint (tv, TRUE); gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (tv)); gtk_widget_show_all (scroll); } /** * uc_application_view_bad_extensions_dialog_show: * * Show bad extensions dialog. */ void uc_application_view_bad_extensions_dialog_show (void) { GtkTreeView *tv; GtkTreeIter iter; GtkListStore *model; GtkCellRenderer *renderer; GList *item = NULL; UCLinkProperties *prop = NULL; GtkWidget *scrolled_bad_extensions = NULL; gint32 id = 0; GtkWidget *dialog = NULL; id = uc_check_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } dialog = WGET ("bad_extensions_dialog"); scrolled_bad_extensions = WGET ("scrolled_bad_extensions"); model = gtk_list_store_new (1, G_TYPE_STRING); prop = uc_lists_checked_links_lookup_by_uid (id); item = g_list_first (prop->bad_extensions); while (item != NULL) { gchar *str = (gchar *) item->data; item = g_list_next (item); gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, 0, str, -1); } tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (model))); g_object_unref (model), model = NULL; renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (tv, -1, _("URL"), renderer, "text", 0, NULL); uc_utils_set_userfriendly_treeview_column (tv, 0); gtk_tree_view_set_rules_hint (tv, TRUE); uc_utils_clear_container (GTK_CONTAINER (scrolled_bad_extensions)); gtk_container_add (GTK_CONTAINER (scrolled_bad_extensions), GTK_WIDGET (tv)); gtk_widget_show_all (dialog); } /** * uc_application_view_similar_links_dialog_show: * * Show similar links dialog. */ void uc_application_view_similar_links_dialog_show (void) { GtkTreeView *tv; GtkTreeIter iter; GtkListStore *model; GtkCellRenderer *renderer; GList *item = NULL; UCLinkProperties *prop = NULL; GtkWidget *scrolled_similar_links = NULL; gint32 id = 0; GtkWidget *dialog = NULL; id = uc_check_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } dialog = WGET ("similar_links_dialog"); scrolled_similar_links = WGET ("sld_scrolled_similar_links"); model = gtk_list_store_new (1, G_TYPE_STRING); prop = uc_lists_checked_links_lookup_by_uid (id); item = g_list_first (prop->similar_links_parents); while (item != NULL) { gchar *str = (gchar *) item->data; item = g_list_next (item); gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, 0, str, -1); } tv = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (model))); g_object_unref (model), model = NULL; renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (tv, -1, _("URL"), renderer, "text", 0, NULL); uc_utils_set_userfriendly_treeview_column (tv, 0); gtk_tree_view_set_rules_hint (tv, TRUE); uc_utils_clear_container (GTK_CONTAINER (scrolled_similar_links)); gtk_container_add (GTK_CONTAINER (scrolled_similar_links), GTK_WIDGET (tv)); gtk_widget_show_all (dialog); } /** * uc_application_launch_web_browser: * @url: URL to pass to the web browser. * * Launch a web browser to view the selected * url */ void uc_application_launch_web_browser (const gchar * url) { gchar *message = NULL; GError *err = NULL; gchar *command_line = NULL; gchar *browser = NULL; gint32 ret = 0; browser = uc_project_get_browser_path (); command_line = g_strconcat (browser, " \"", url, "\"", NULL); ret = g_spawn_command_line_async (command_line, &err); g_free (command_line), command_line = NULL; if (ret == 0) { message = g_strdup_printf ( "%s\n\n%s", _("Cannot start your web browser\n" "The following error occured:\n"), err->message); uc_application_dialog_show (message, GTK_MESSAGE_ERROR); g_clear_error (&err); g_free (message), message = NULL; } } /** * uc_application_view_image_dialog_show: * * Show view image dialog. */ void uc_application_view_image_dialog_show (void) { gint32 id = 0; gchar *src = NULL; GtkWidget *dialog = NULL; id = uc_check_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } src = uc_utils_convert_uid2file (id); if (src != NULL) { GtkImage *image_preview = NULL; dialog = WGET ("view_image_dialog"); image_preview = GTK_IMAGE (WGET ("vid_image_preview")); gtk_image_set_from_file (image_preview, src); g_free (src), src = NULL; gtk_widget_show_all (dialog); } else uc_application_dialog_show (_("Either the corresponding " "file is empty or does not exist " "in the cache directory!"), GTK_MESSAGE_ERROR); } /** * uc_application_view_source_dialog_show: * * Show view source dialog. */ void uc_application_view_source_dialog_show (void) { gint32 id = 0; gchar *src = NULL; gsize length = 0; id = uc_check_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } src = uc_cache_get_source (id, &length); if (src) uc_application_buffer_show (_("View source"), src); else uc_application_dialog_show (_("Either the corresponding " "file is empty or does not exist " "in the cache directory!"), GTK_MESSAGE_ERROR); g_free (src), src = NULL; } /** * uc_application_urls_user_actions_free_cb: * * Free the bad URLs actions hash table. */ static void uc_application_urls_user_actions_free_cb (gpointer data) { UCURLsUserActions *a = (UCURLsUserActions *) data; g_free (a->id), a->id = NULL; g_free (a->label), a->label = NULL; g_free (a), a = NULL; } /** * uc_application_urls_user_actions_init * * This function load the actions tp associate with bad URLs. */ void uc_application_urls_user_actions_init (void) { guint i = 0; struct { gchar *id; gchar *label; } UCActions[] = { {"none", " "}, {"redirect", _("Redirect")}, {"edit", _("Edit")}, {"create-target", _("Create target")} }; const guint actions_len = G_N_ELEMENTS (UCActions); if (uc_application_urls_user_actions_hash != NULL) g_hash_table_destroy (uc_application_urls_user_actions_hash), uc_application_urls_user_actions_hash = NULL; uc_application_urls_user_actions_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) uc_application_urls_user_actions_free_cb); /* initialization of the hash table for bad URLs actions */ for (i = 0; i < actions_len; i++) { UCURLsUserActions *a = NULL; a = g_new0 (UCURLsUserActions, 1); a->id = g_strdup (UCActions[i].id); a->label = g_strdup (UCActions[i].label); g_hash_table_replace (uc_application_urls_user_actions_hash, g_strdup (UCActions[i].id), (gpointer) a); } } /** * uc_application_status_code_properties_free_cb: * * Free the code properties hash table. */ static void uc_application_status_code_properties_free_cb (gpointer data) { UCStatusCode *sc = (UCStatusCode *) data; g_object_unref (sc->icon_file), sc->icon_file = NULL; g_free (sc), sc = NULL; } /** * uc_application_status_code_properties_init: * * This function load the properties to associate * with a server status code. */ void uc_application_status_code_properties_init (void) { guint i = 0; struct { gchar *code; gchar *color; gchar *icon; gchar *message; gchar *description; } UCHTMLCodes[] = { /* HOST UNREACHABLE - gURLChecker internal */ { UC_STATUS_CODE_HOST_IS_UNREACHABLE, UC_TIMEOUT_LINK_BGCOLOR, "/link_status_timeout.png", _("Host unreachable"), _("The remote host does not respond at all...\nPerhaps " "you would change the timeout in gURLChecker " "preferences, or perhaps it is really down." "\n\nTry to check it later.")}, /* FILE PROTOCOL - gURLChecker internal */ { UC_STATUS_CODE_FILE_PROTO_ERROR, UC_FILE_ERROR_LINK_BGCOLOR, "/link_status_file_error.png", _("FILE:// protocol"), _("File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" " "protocol in a link.")}, /* FTP OK - gURLChecker internal */ { UC_STATUS_CODE_FTP_OK, UC_GOOD_LINK_BGCOLOR, "/link_status_good.png", _("Page available"), _("No problem with this page.\nServer is up and document " "can be loaded without any problem.")}, /* FTP BAD - gURLChecker internal */ { UC_STATUS_CODE_FTP_BAD, UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Page not found"), _("The page does not exist on the server.")}, /* BAD EMAIL LINK SYNTAX - gURLChecker internal */ { UC_STATUS_CODE_BAD_EMAIL_LINK, UC_BAD_EMAIL_LINK_BGCOLOR, "/link_status_mail_bad.png", _("Bad E-Mail link"), _("The E-Mail specified in the link is not well " "formatted.")}, /* BAD EMAIL LINK MX - gURLChecker internal */ { UC_STATUS_CODE_BAD_EMAIL_LINK_MX, UC_BAD_EMAIL_LINK_BGCOLOR, "/link_status_mail_bad.png", _("Problem with MX"), _("The MX of the domain specified for this E-Mail is " "not valid or the domain itself is not valid.")}, /* GOOD EMAIL LINK - gURLChecker internal */ { UC_STATUS_CODE_GOOD_EMAIL_LINK, UC_GOOD_LINK_BGCOLOR, "/link_status_mail_good.png", _("E-Mail link ok"), _("No problem with this E-Mail.")}, /* IGNORED ITEM - gURLChecker internal */ { UC_STATUS_CODE_IGNORED_LINK, UC_IGNORED_LINK_BGCOLOR, "/link_status_ignored.png", _("Item ignored"), _("You chose to ignore this item while gURLChecker " "was checking it.")}, /* MALFORMED ITEM - gURLChecker internal */ { UC_STATUS_CODE_MALFORMED_LINK, UC_MALFORMED_LINK_BGCOLOR, "/link_status_malformed.png", _("Malformed link"), _("The HTML link is malformed.\nPerhaps HREF value is missing?")}, /* UNKNOW - gURLChecker internal */ { UC_STATUS_CODE_UNKNOWN, UC_BAD_LINK_BGCOLOR, "/link_type_unknown.png", _("No valid information"), _("gURLChecker can't interpret the status code sent " "by the remote host.\nPlease, report the value of the " "\"Status\" header field to the author of gURLChecker.")}, /* 200 */ { UC_STATUS_CODE_PAGE_OK, UC_GOOD_LINK_BGCOLOR, "/link_status_good.png", _("Page available"), _("No problem with this page.\nServer is up and document " "can be loaded without any problem.")}, /* 301 */ { UC_STATUS_CODE_MOVED_PERMANENTLY, UC_GOOD_LINK_BGCOLOR, "/link_status_good.png", _("Page moved permanently"), _("No real problem with this page.\n" "The requested resource just has been assigned a new permanent " "URI.")}, /* 302 */ { UC_STATUS_CODE_REDIRECTED, UC_GOOD_LINK_BGCOLOR, "/link_status_good.png", _("Page moved Temporarily"), _("No problem with this page.\nServer is up and document " "can be loaded without any problem.")}, /* 303 */ { UC_STATUS_CODE_REDIRECTED_SEE_OTHER, UC_GOOD_LINK_BGCOLOR, "/link_status_good.png", _("The response to the request can be found under a different URI"), _("No problem with this page.\nServer is up and document " "can be loaded without any problem.")}, /* 401 */ { UC_STATUS_CODE_RESTRICTED, UC_RESTRICTED_LINK_BGCOLOR, "/link_status_restricted.png", _("Restricted access"), _("This page need authentication to be viewed.")}, /* 403 */ { "403", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Access forbidden"), _("The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should " "not occured.\n\n" "Please report this bug to the gURLChecker Team.")}, /* 204 */ { UC_STATUS_CODE_NO_DATA, UC_NO_DATA_LINK_BGCOLOR, "/link_status_nodata.png", _("Page available, but with no content"), _("No problem with this page, but it has no content " "at all...\n\nTry to check it later.")}, /* 400 */ { "400", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Malformed URL"), _("The request could not be understood by the server " "due to malformed syntax.")}, /* 404 */ { "404", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Page not found"), _("The page does not exist on the server.")}, /* 405 */ { UC_STATUS_CODE_BAD_METHOD, UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Method not allowed"), _("The remote host has refused to serve us the page." "\n\nTry to check it later.")}, /* 500 */ { "500", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Internal server error"), _("The page contain bad code, or the server is " "misconfigured.\n\nTry to check it later.")}, /* 501 */ { "501", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Method not supported"), _("The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should " "not occured.\n\n" "Please report this bug to the gURLChecker Team.")}, /* 502 */ { "502", UC_BAD_LINK_BGCOLOR, "/link_status_bad.png", _("Bad Gateway"), _("The server, while acting as a gateway or proxy, received an " "invalid response from the upstream server it accessed in " "attempting to fulfill the request.\n\nTry to check this " "page later.")}, /* 503 */ { "503", UC_BAD_LINK_BGCOLOR, "/link_status_timeout.png", _("Service unavailable"), _("The server is currently unable to handle the request " "due to a temporary overloading or maintenance " "of the server. It is also possible that you are using " "a proxy that can not join the given host.\n\nTry " "to check it later, or change your proxy settings.")}, /* 504 */ { "504", UC_TIMEOUT_LINK_BGCOLOR, "/link_status_timeout.png", _("Request not completed"), _("The server, while acting as a gateway or proxy, did not " "receive a timely response from the upstream server specified " "by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary " "server (e.g. DNS) it needed to access in attempting to " "complete the request.")}, /* FTP - 530 */ { UC_STATUS_CODE_FTP_MAX_CLIENTS, UC_RESTRICTED_LINK_BGCOLOR, "/link_status_restricted.png", _("Access forbidden or too many connections"), _ ("This server do not accept anonymous users, or the maximum number " "of allowed clients are already connected.\n\n" "Try to check it later.")}, /* 408 */ { UC_STATUS_CODE_TIMEOUT, UC_TIMEOUT_LINK_BGCOLOR, "/link_status_timeout.png", _("Receiving timout requesting the page"), _("Perhaps you would change the timeout in gURLChecker " "preferences. Perhaps the remote host is " "too busy for the moment to responde to " "gURLChecker request, or perhaps the remote host does not " "exist at all.\n\nTry to check it later.")},}; const guint codes_len = G_N_ELEMENTS (UCHTMLCodes); gchar *path = NULL; if (uc_application_status_code_properties_hash != NULL) g_hash_table_destroy (uc_application_status_code_properties_hash), uc_application_status_code_properties_hash = NULL; uc_application_status_code_properties_hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) uc_application_status_code_properties_free_cb); /* initialization of the hash table for HTTP * codes properties */ for (i = 0; i < codes_len; i++) { UCStatusCode *sc = NULL; sc = g_new0 (UCStatusCode, 1); path = g_strconcat (UC_PIXMAPS_DIR, UCHTMLCodes[i].icon, NULL); sc->icon_file = gdk_pixbuf_new_from_file (path, NULL); g_free (path), path = NULL; sc->color = UCHTMLCodes[i].color; sc->message = UCHTMLCodes[i].message; sc->description = UCHTMLCodes[i].description; g_hash_table_replace (uc_application_status_code_properties_hash, UCHTMLCodes[i].code, (gpointer) sc); } } /** * uc_application_new_instance_launch: * * Launch a new instance of gURLChecker. */ void uc_application_new_instance_launch (void) { gchar *message = NULL; GError *err = NULL; gchar *argv[] = { PACKAGE_BIN_DIR "/" PACKAGE, NULL }; gchar **envp = environ; GSpawnFlags flags = G_SPAWN_DO_NOT_REAP_CHILD; gint child_pid; if (g_spawn_async (NULL, argv, envp, flags, NULL, NULL, &child_pid, &err)) return; message = g_strdup_printf ("%s\n\n%s", _ ("Cannot start new instance of gURLChecker; " "the following error occured:"), err->message); uc_application_dialog_show (message, GTK_MESSAGE_ERROR); g_clear_error (&err); g_free (message), message = NULL; } /** * uc_application_settings_dialog_show: * * Show the settings dialog box. */ void uc_application_settings_dialog_show (void) { GtkWidget *widget = NULL; gchar **items = NULL; guint items_size = 0; GtkWidget *dialog = NULL; dialog = WGET ("settings_dialog"); /* network timeout */ widget = WGET ("sd_timeout"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_check_timeout ()); /* Export labels */ widget = WGET ("sd_export_labels"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_labels ()); /* Export numbering */ widget = WGET ("sd_export_numbering"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_numbering ()); /* Export IP */ widget = WGET ("sd_export_ip"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_ip ()); /* Only export external links */ widget = WGET ("sd_export_external"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_export_external ()); /* Activate security checks? */ widget = WGET ("sd_security_checks"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_security_checks ("any")); widget = WGET ("sd_security_checks_bad_extensions"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_security_checks ("bad_extensions")); widget = WGET ("sd_security_checks_exclude_images"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_security_checks ("exclude_images")); widget = WGET ("sd_security_checks_virii_extensions"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_security_checks ("virii")); #ifndef ENABLE_CLAMAV WSENS ("sd_notebook_security_virii", FALSE); #endif /* Activate W3C checks? */ widget = WGET ("sd_w3c_checks"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_w3c_checks ("any")); widget = WGET ("sd_w3c_checks_html"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_w3c_checks ("html")); #ifndef ENABLE_TIDY WSENS ("sd_notebook_w3c_html", FALSE); #endif widget = WGET ("sd_w3c_checks_css"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_w3c_checks ("css")); #ifndef ENABLE_CROCO WSENS ("sd_notebook_w3c_css", FALSE); #endif /* prompt for auth */ widget = WGET ("sd_prompt_auth"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_prompt_auth ()); /* debug mode? */ widget = WGET ("sd_debug_mode"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_debug_mode ()); /* dump properties? */ widget = WGET ("sd_dump_properties"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_dump_properties ()); // Networking depth level widget = WGET ("sd_url_depth_level"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_depth_level ()); // Ignore URL args? widget = WGET ("sd_no_urls_args"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_no_urls_args ()); // Only check given directory and its subdirectories? widget = WGET ("sd_check_chroot"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_check_chroot ()); // Do not check external links? widget = WGET ("sd_limit_local"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_limit_local ()); /* retrieve images content */ widget = WGET ("sd_images_content"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_download_images_content ()); /* retrieve archives content */ widget = WGET ("sd_archives_content"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_download_archives_content ()); /* networking check wait */ widget = WGET ("sd_url_wait"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_check_wait ()); /* documents to reject */ widget = WGET ("documents_rejected_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_reject_documents ()); /* images to reject */ widget = WGET ("images_rejected_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_reject_images ()); /* Bad extensions */ widget = WGET ("security_bad_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_security_bad_extensions ()); /* Virii extensions */ widget = WGET ("security_virii_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_security_virii_extensions ()); /* w3c HTML extensions */ widget = WGET ("w3c_html_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_w3c_html_extensions ()); /* w3c CSS extensions */ widget = WGET ("w3c_css_extensions_entry"); gtk_entry_set_text (GTK_ENTRY (widget), uc_project_get_w3c_css_extensions ()); /* directories to reject */ uc_project_get_reject_directories (&items, &items_size); uc_application_settings_dialog_display_filters_list ("sd_scrolled_filters_directories", items, items_size, &treeview_filter_directories, &treestore_filter_directories); /* domains to reject */ uc_project_get_reject_domains (&items, &items_size); uc_application_settings_dialog_display_filters_list ("sd_scrolled_filters_domains", items, items_size, &treeview_filter_domains, &treestore_filter_domains); /* value for domains in timeout */ widget = WGET ("sd_timeouts_blocked"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_timeouts_blocked ()); /* accept/not accept file protocol & consider/not consider FILE * protocol like a error */ widget = WGET ("sd_radio_file_protocol"); if (uc_project_get_proto_file_check ()) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); else { widget = WGET ("sd_radio_file_is_error"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); } /* W3C HTML alerts level */ if (!strcmp (uc_project_get_w3c_html_level (), "warnings")) { widget = WGET ("sd_radio_w3c_html_warnings"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); } else if (!strcmp (uc_project_get_w3c_html_level (), "errors")) { widget = WGET ("sd_radio_w3c_html_errors"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); } else g_assert_not_reached (); /* accept/not accept cookies */ widget = WGET ("sd_radio_cookies_accept"); if (uc_project_get_cookies_accept ()) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); widget = WGET ("sd_radio_cookies_none"); if (!uc_project_get_cookies_accept ()) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); /* E-Mail check */ widget = WGET ("sd_check_email_address"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_proto_mailto ()); /* warn for cookies */ widget = WGET ("sd_check_cookies_warn_added"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_cookies_warn_added ()); widget = WGET ("sd_check_cookies_warn_updated"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_cookies_warn_updated ()); widget = WGET ("sd_check_cookies_warn_deleted"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_cookies_warn_deleted ()); /* E-Mail MX check */ widget = WGET ("sd_check_email_mx"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_proto_mailto_check_mx ()); gtk_widget_set_sensitive (GTK_WIDGET (widget), uc_project_get_proto_mailto ()); /* FTP check */ widget = WGET ("sd_check_ftp_protocol"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_proto_ftp ()); widget = WGET ("sd_use_passive_ftp"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_passive_ftp ()); /* HTTPS check */ widget = WGET ("sd_check_https_protocol"); #ifdef ENABLE_GNUTLS gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_proto_https ()); #else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); WSENS ("sd_check_https_protocol", FALSE); #endif gtk_widget_show_all (dialog); } /** * uc_application_settings_get_data: * * Retrieve user input data settings. * * Returns: TRUE if all inputs are ok. */ gboolean uc_application_settings_get_data (void) { GtkWidget *widget = NULL; gchar *tmp = NULL; #ifdef ENABLE_CLAMAV gchar *error = NULL; UCClam *clam = NULL; #endif #ifdef ENABLE_CROCO UCCroco *croco = NULL; #endif #ifdef ENABLE_TIDY UCTidy *tidy = NULL; #endif /* network timeout */ widget = WGET ("sd_timeout"); uc_project_set_check_timeout (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); /* Export labels */ widget = WGET ("sd_export_labels"); uc_project_set_export_labels ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* Export numbering */ widget = WGET ("sd_export_numbering"); uc_project_set_export_numbering ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* Export IP */ widget = WGET ("sd_export_ip"); uc_project_set_export_ip ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* Only export external links */ widget = WGET ("sd_export_external"); uc_project_set_export_external ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* Activate security checks? */ widget = WGET ("sd_security_checks"); uc_project_set_security_checks ("any", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_security_checks_bad_extensions"); uc_project_set_security_checks ("bad_extensions", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_security_checks_exclude_images"); uc_project_set_security_checks ("exclude_images", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_security_checks_virii_extensions"); #ifdef ENABLE_CLAMAV if (uc_project_get_security_checks ("any") && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) && !(clam = uc_ucclam_new (&error))) { gchar *tmp = g_strdup_printf ( _("A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav " "version.\n\n" "Virii will not be detected."), error); uc_application_dialog_show (tmp, GTK_MESSAGE_ERROR); g_free (tmp), tmp = NULL; g_free (error), error = NULL; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); } #endif uc_project_set_security_checks ("virii", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* Activate W3C checks? */ widget = WGET ("sd_w3c_checks"); uc_project_set_w3c_checks ("any", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_w3c_checks_css"); #ifdef ENABLE_CROCO if (uc_project_get_w3c_checks ("any") && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) && !(croco = uc_uccroco_new ())) { uc_application_dialog_show ( _("A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n\n" "CSS stylesheets will not be validated."), GTK_MESSAGE_ERROR); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); } #endif uc_project_set_w3c_checks ("css", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_w3c_checks_html"); #ifdef ENABLE_TIDY if (uc_project_get_w3c_checks ("any") && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) && !(tidy = uc_uctidy_new ())) { uc_application_dialog_show ( _("A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n\n" "HTML pages will not be validated."), GTK_MESSAGE_ERROR); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); } #endif uc_project_set_w3c_checks ("html", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* prompt for auth */ widget = WGET ("sd_prompt_auth"); uc_project_set_prompt_auth ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* active debug mode? */ widget = WGET ("sd_debug_mode"); uc_project_set_debug_mode ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* dump properties? */ widget = WGET ("sd_dump_properties"); uc_project_set_dump_properties ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); // Networking depth level widget = WGET ("sd_url_depth_level"); uc_project_set_depth_level (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); // Ignore URL args? widget = WGET ("sd_no_urls_args"); uc_project_set_no_urls_args ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); // Only check given directory and its subdirectories? widget = WGET ("sd_check_chroot"); uc_project_set_check_chroot ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); // Do not check external links? widget = WGET ("sd_limit_local"); uc_project_set_limit_local ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* retrieving images content */ widget = WGET ("sd_images_content"); uc_project_set_download_images_content ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* retrieving archives content */ widget = WGET ("sd_archives_content"); uc_project_set_download_archives_content ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* networking check wait */ widget = WGET ("sd_url_wait"); uc_project_set_check_wait (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); /* documents to reject */ widget = WGET ("documents_rejected_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_reject_documents (tmp); /* images to reject */ widget = WGET ("images_rejected_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_reject_images (tmp); /* Bad extensions */ widget = WGET ("security_bad_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_security_bad_extensions (tmp); /* Virii extensions */ widget = WGET ("security_virii_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_security_virii_extensions (tmp); /* w3c HTML extensions */ widget = WGET ("w3c_html_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_w3c_html_extensions (tmp); /* w3c CSS extensions */ widget = WGET ("w3c_css_extensions_entry"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget)); uc_project_set_w3c_css_extensions (tmp); /* directories filter */ uc_application_filters_save_settings (treeview_filter_directories, "directories"); /* domains filter */ uc_application_filters_save_settings (treeview_filter_domains, "domains"); /* value for domains in timeout */ widget = WGET ("sd_timeouts_blocked"); uc_project_set_timeouts_blocked (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); /* check the FILE protocol & accept/not accept FILE protocol */ widget = WGET ("sd_radio_file_protocol"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { uc_project_set_proto_file_check (1); uc_project_set_proto_file_is_error (0); } else { uc_project_set_proto_file_check (0); uc_project_set_proto_file_is_error (1); } /* accept/not accept cookies */ widget = WGET ("sd_radio_cookies_accept"); uc_project_set_cookies_accept (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* W3C HTML alerts level */ widget = WGET ("sd_radio_w3c_html_warnings"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) uc_project_set_w3c_html_level ("warnings"); widget = WGET ("sd_radio_w3c_html_errors"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) uc_project_set_w3c_html_level ("errors"); /* check E-Mails */ widget = WGET ("sd_check_email_address"); uc_project_set_proto_mailto ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* warn for cookies */ widget = WGET ("sd_check_cookies_warn_added"); uc_project_set_cookies_warn_added ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_check_cookies_warn_updated"); uc_project_set_cookies_warn_updated ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_check_cookies_warn_deleted"); uc_project_set_cookies_warn_deleted ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* check MX */ widget = WGET ("sd_check_email_mx"); uc_project_set_proto_mailto_check_mx ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* check FTP */ widget = WGET ("sd_check_ftp_protocol"); uc_project_set_proto_ftp ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("sd_use_passive_ftp"); uc_project_set_passive_ftp ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* check HTTPS */ widget = WGET ("sd_check_https_protocol"); uc_project_set_proto_https ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); uc_project_general_settings_save (); /* FIXME */ if (uc_project_get_url () && !uc_project_get_check_is_bookmarks ()) uc_project_set_save (TRUE); return TRUE; } /** * uc_application_filters_save_settings: * @treeview: Tree view to work with. * @path: Filter type ("domains" or "directories"). * * Save filters settings. */ static void uc_application_filters_save_settings (GtkTreeView * treeview, const gchar * path) { GtkTreeModel *tree_store = NULL; gchar **filters_vector = NULL; GtkTreeIter iter; GString *filters = g_string_new (""); guint size = 0; tree_store = gtk_tree_view_get_model (treeview); if (gtk_tree_model_get_iter_first (tree_store, &iter)) do { GValue *value = NULL; value = g_new0 (GValue, 1); gtk_tree_model_get_value (tree_store, &iter, 0, value); g_string_append_printf (filters, ",%s", (gchar *) g_value_get_string (value)); g_value_unset (value); size++; } while (gtk_tree_model_iter_next (tree_store, &iter)); if (size > 0) g_string_erase (filters, 0, 1); filters_vector = g_strsplit (filters->str, ",", -1); if (!strcmp (path, "directories")) uc_project_set_reject_directories (filters->str); else if (!strcmp (path, "domains")) uc_project_set_reject_domains (filters->str); g_strfreev (filters_vector), filters_vector = NULL; g_string_free (filters, TRUE), filters = NULL; } /** * uc_application_progress_dialog_show: * * Show the progess dialog. */ void uc_application_progress_dialog_show (void) { GtkWidget *widget = NULL; GtkWidget *dialog = NULL; dialog = WGET ("progress_dialog"); widget = WGET ("pd_dynamic_values_security_checks"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_security_checks ("any")); widget = WGET ("pd_dynamic_values_time_between"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_check_wait ()); widget = WGET ("pd_dynamic_values_timeout"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) uc_project_get_check_timeout ()); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_FIRST, _("Check in progress...")); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_SECOND, ""); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, ""); gtk_widget_show_all (dialog); } /** * uc_application_progress_dialog_set_modal: */ void uc_application_progress_dialog_set_modal (const gboolean modal) { static GtkTreePath *treepath = NULL; if (modal) { if (treepath) { gtk_widget_set_sensitive (WGET ("menu_bar"), TRUE); gtk_widget_set_sensitive (WGET ("tool_bar"), TRUE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_cursor (GTK_TREE_VIEW (treeview), treepath, NULL, FALSE); gtk_tree_path_free (treepath), treepath = NULL; } } else if (treeview != NULL) { if (treepath != NULL) gtk_tree_path_free (treepath), treepath = NULL; gtk_tree_view_get_cursor (treeview, &treepath, NULL); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_widget_set_sensitive (WGET ("menu_bar"), FALSE); gtk_widget_set_sensitive (WGET ("tool_bar"), FALSE); gtk_window_set_focus (GTK_WINDOW (WGET ("main_window")), GTK_WIDGET (treeview)); } gtk_window_set_modal (GTK_WINDOW (WGET ("progress_dialog")), modal); } /** * uc_application_about_dialog_show: * * Show the about box. */ void uc_application_about_dialog_show (void) { GtkAboutDialog *about_dialog = NULL; GdkPixbuf *pixbuf = NULL; gchar *license = NULL; const gchar *artists[] = { "Jan Henrik Helmers\n" "Emmanuel Saracco", NULL }; const gchar *authors[] = { _("Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet"), NULL }; const gchar *documenters[] = { _("Manpage:"), "Daniel Pecos", "Emmanuel Saracco", "", _("Code:"), "Emmanuel Saracco", NULL }; gchar *translators = _("Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n"); g_file_get_contents (PACKAGE_DATA_DIR "/doc/" PACKAGE "/COPYING", &license, NULL, NULL); pixbuf = gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/gurlchecker_icon.png", NULL); about_dialog = GTK_ABOUT_DIALOG (gtk_about_dialog_new ()); gtk_window_set_position (GTK_WINDOW (about_dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_about_dialog_set_version (about_dialog, UC_VERSION); gtk_about_dialog_set_copyright (about_dialog, "(C) 2002-2011 Emmanuel Saracco"); gtk_about_dialog_set_comments (about_dialog, _("gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page " "or a browser bookmarks file")); gtk_about_dialog_set_license (about_dialog, license); gtk_about_dialog_set_wrap_license (about_dialog, TRUE); gtk_about_dialog_set_website (about_dialog, "http://gurlchecker.labs.libre-entreprise.org"); gtk_about_dialog_set_authors (about_dialog, authors); gtk_about_dialog_set_documenters (about_dialog, documenters); gtk_about_dialog_set_artists (about_dialog, artists); gtk_about_dialog_set_translator_credits (about_dialog, translators); gtk_about_dialog_set_logo (about_dialog, pixbuf); g_object_unref (pixbuf), pixbuf = NULL; g_free (license), license = NULL; gtk_dialog_run (GTK_DIALOG (about_dialog)); gtk_widget_destroy (GTK_WIDGET (about_dialog)); } /** * uc_application_dialog_yes_no_show: * @message: The message to display. * @msg_type: Type of the message. * * Print a yes/no choice dialog. * * Returns: TRUE if user clicked on the OK button. */ gint uc_application_dialog_yes_no_show (const gchar * message, const GtkMessageType msg_type) { gint ret = 0; GtkWidget *dialog = NULL; dialog = gtk_message_dialog_new_with_markup ( NULL, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, msg_type, GTK_BUTTONS_NONE, message); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_NO, GTK_RESPONSE_NO, GTK_STOCK_YES, GTK_RESPONSE_YES, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); ret = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); return ret; } void uc_application_buffer_show (const gchar * title, const gchar * message) { GtkWidget *dialog = NULL; GtkWidget *w = NULL; GtkTextBuffer *buffer = NULL; gchar *tmp = NULL; dialog = WGET ("show_buffer_dialog"); gtk_window_set_title (GTK_WINDOW (dialog), title); w = WGET ("text"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (w)); tmp = uc_utils_to_utf8 ((gchar *) message); gtk_text_buffer_set_text (buffer, tmp, -1); g_free (tmp), tmp = NULL; gtk_widget_show_all (dialog); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_hide (dialog); } /** * uc_application_dialog_show: * @message: The message to display. * @msg_type: Type of the message. * * Print a alert box. */ void uc_application_dialog_show (const gchar * message, const GtkMessageType msg_type) { GtkWidget *dialog = NULL; dialog = gtk_message_dialog_new_with_markup ( NULL, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, msg_type, GTK_BUTTONS_OK, message); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } /** * uc_application_new_local_file_dialog_show: * * Show the new local file project dialog box. */ void uc_application_new_local_file_dialog_show (void) { GtkWidget *widget = NULL; GtkWidget *dialog = NULL; if (!uc_project_save_all ()) return; dialog = WGET ("new_local_file_project_dialog"); widget = WGET ("nlfpd_project_url"); if (uc_project_get_url () != NULL) gtk_entry_set_text ( GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (widget))), uc_project_get_url ()); // Do not retreive page content? widget = WGET ("nlfpd_speed_check"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); // Only check given directory and its subdirectories? widget = WGET ("nlfpd_check_chroot"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_check_chroot ()); // Do not check external links? widget = WGET ("nlfpd_limit_local"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_limit_local ()); gtk_widget_show_all (dialog); } /** * uc_application_new_web_dialog_show: * * Show the new web project dialog box. */ void uc_application_new_web_dialog_show (void) { GtkWidget *widget = NULL; GtkWidget *dialog = NULL; if (!uc_project_save_all ()) return; dialog = WGET ("new_web_project_dialog"); widget = WGET ("nwpd_project_url"); if (uc_project_get_url () != NULL) gtk_entry_set_text ( GTK_ENTRY (gnome_entry_gtk_entry (GNOME_ENTRY (widget))), uc_project_get_url ()); // Do not retreive page content? widget = WGET ("nwpd_speed_check"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); // Ignore URL args? widget = WGET ("nwpd_no_urls_args"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_no_urls_args ()); // Only check given directory and its subdirectories? widget = WGET ("nwpd_check_chroot"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_check_chroot ()); // Do not check external links? widget = WGET ("nwpd_limit_local"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), uc_project_get_limit_local ()); gtk_widget_show_all (dialog); } /** * uc_application_new_bookmarks_dialog_show: * * Show the new bookmarks project dialog box. */ void uc_application_new_bookmarks_dialog_show (void) { GtkWidget *widget = NULL; GtkWidget *dialog = NULL; GtkTextBuffer *buffer = NULL; if (!uc_project_save_all ()) return; dialog = WGET ("new_bookmarks_project_dialog"); widget = WGET ("nbpd_project_bookmarks_file"); if (uc_project_get_check_is_bookmarks ()) gnome_file_entry_set_default_path (GNOME_FILE_ENTRY (widget), uc_project_get_bookmarks_file ()); widget = WGET ("nbpd_info"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); #if defined(ENABLE_SQLITE3) && defined(ENABLE_JSON) gtk_text_buffer_set_text (buffer, _("You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, " "or Firefox database file"), -1); #elif defined(ENABLE_SQLITE3) gtk_text_buffer_set_text (buffer, _("You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file"), -1); #elif defined(ENABLE_JSON) gtk_text_buffer_set_text (buffer, _("You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file"), -1); #else gtk_text_buffer_set_text (buffer, _("You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format"), -1); #endif gtk_widget_show_all (dialog); } /** * uc_application_add_filter_domain_add: * * Add a domain filter. */ void uc_application_add_filter_domain_add (void) { gchar *text = NULL; text = uc_application_input_dialog (_("New domain to reject"), _("Add a domain to reject")); if (text != NULL && g_strstrip (text) && strlen (text) > 0) { GtkTreeIter iter; /* very basic check of the domain name syntax */ if ((strlen (text) < 4) || (!strchr (text, '.')) || (text[strlen (text) - 1] == '.') || (text[strlen (text) - 2] == '.') || (text[0] == '.')) { uc_application_dialog_show (_("This domain name is not valid."), GTK_MESSAGE_ERROR); uc_application_add_filter_domain_add (); } else { gtk_list_store_append (treestore_filter_domains, &iter); gtk_list_store_set (treestore_filter_domains, &iter, 0, text, -1); } } g_free (text), text = NULL; } /** * uc_application_treeview_get_selected_iter: * @tv: Tree view to work with. * @iter: Iterater to fill. * * set the iterator for the current * selection in a given treeview. * * Returns: TRUE if it has filled the given iter with selection. */ gboolean uc_application_treeview_get_selected_iter (const GtkTreeView * tv, GtkTreeIter * iter) { GtkTreeModel *model = NULL; GtkTreeSelection *select = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv)); gint32 ret = -1; if (gtk_tree_selection_get_selected (select, &model, iter)) { gtk_tree_model_get (model, iter, 0, &ret, -1); return TRUE; } return FALSE; } /** * uc_application_add_filter_domain_remove: * * Remove a domain filter. */ void uc_application_add_filter_domain_remove (void) { GtkTreeIter iter; if (uc_application_treeview_get_selected_iter (treeview_filter_domains, &iter)) gtk_list_store_remove (treestore_filter_domains, &iter); else uc_application_dialog_show (_("Please, select a item."), GTK_MESSAGE_ERROR); } /** * uc_application_add_filter_directory_add: * * Add a directory filter. */ void uc_application_add_filter_directory_add (void) { gchar *text = NULL; text = uc_application_input_dialog (_("New directory to reject"), _("Add a directory to reject")); if (text != NULL && g_strstrip (text) && strlen (text) > 0) { GtkTreeIter iter; gchar *tmp_path = NULL; /* force directory to be "slashed" */ if (text[strlen (text) - 1] == '/') text[strlen (text) - 1] = '\0'; tmp_path = (text[0] == '/') ? g_strconcat (text, "/", NULL) : g_strconcat ("/", text, "/", NULL); gtk_list_store_append (treestore_filter_directories, &iter); gtk_list_store_set (treestore_filter_directories, &iter, 0, tmp_path, -1); g_free (tmp_path), tmp_path = NULL; } g_free (text), text = NULL; } /** * uc_application_add_filter_directory_remove: * * Remove a directory filter. */ void uc_application_add_filter_directory_remove (void) { GtkTreeIter iter; if (uc_application_treeview_get_selected_iter (treeview_filter_directories, &iter)) gtk_list_store_remove (treestore_filter_directories, &iter); else uc_application_dialog_show (_("Please, select a item."), GTK_MESSAGE_ERROR); } /** * uc_application_search_get_data: * * Retreive the string to search and the search * properties. */ void uc_application_search_get_data (void) { GtkWidget *widget = NULL; gchar *tmp = NULL; widget = WGET ("nsd_search_string"); tmp = (gchar *) gtk_entry_get_text (GTK_ENTRY (gnome_entry_gtk_entry (GNOME_ENTRY (widget)))); if (tmp != NULL) { g_strstrip (tmp); if (strlen (tmp) > 0) { // Add search key to Search history gnome_entry_append_history (GNOME_ENTRY (widget), TRUE, tmp); uc_search_free (); search_state.string = g_strdup (tmp); /* FIXME search_state.case_sensitive = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("search_case sensitive")))); */ search_state.case_sensitive = TRUE; search_state.status_code = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_status_code")))); search_state.pages_content = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_pages_content")))); search_state.links_name = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_links_name")))); search_state.meta_content = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_meta_content")))); search_state.emails = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_emails")))); gtk_widget_hide (WGET ("new_search_dialog")); UC_UPDATE_UI; uc_search_begin (); return; } } uc_application_dialog_show (_("Please, enter a string to search."), GTK_MESSAGE_ERROR); } /** * uc_application_project_get_data: * @type: FIXME. * * Retrieving url to check and some check * properties. * * Returns: %TRUE if data input is ok. */ gboolean uc_application_project_get_data (const UCProjectType type) { GtkWidget *widget = NULL; gchar *auth_user = NULL; gchar *auth_password = NULL; gchar *auth_line = NULL; gchar *tmp = NULL; gchar *tmp_url = NULL; gchar *err_msg = _("Please, check that there is no mismatch in " "your URL and try again."); uc_project_set_type (type); if (type == UC_PROJECT_TYPE_WEB_SITE) { widget = WGET ("nwpd_project_url"); tmp = g_strdup (gtk_entry_get_text (GTK_ENTRY (gnome_entry_gtk_entry ( GNOME_ENTRY (widget))))); } else { widget = WGET ("nlfpd_project_url"); tmp = g_strdup (gtk_entry_get_text ( GTK_ENTRY (gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY (widget))))); } if (tmp != NULL) { g_strstrip (tmp); #ifndef ENABLE_GNUTLS if (uc_utils_memcasecmp (tmp, UC_PROTOCOL_HTTPS)) err_msg = _("Sorry, but this version of gurlchecker have no SSL support"); else #endif if (strlen (tmp) > 0) { tmp_url = uc_url_add_protocol ((uc_project_get_type () == UC_PROJECT_TYPE_WEB_SITE) ? UC_PROTOCOL_HTTP : UC_PROTOCOL_FILE, tmp); if (uc_url_is_valid (tmp_url)) { uc_project_new (); uc_project_set_url (tmp_url); uc_project_set_type (type); if (uc_project_get_type () == UC_PROJECT_TYPE_WEB_SITE) { // Add path in Web projects history gnome_entry_append_history (GNOME_ENTRY (widget), TRUE, tmp_url); // Manage authentication uc_project_set_auth_line (NULL); if (uc_utils_get_auth_fields (glade, WGET ("nwpd_auth_user"), WGET ("nwpd_auth_password"), &auth_user, &auth_password, &auth_line)) { uc_project_set_auth_line (auth_line); g_free (auth_line), auth_line = NULL; } /* ignore URLs arguments */ widget = WGET ("nwpd_no_urls_args"); uc_project_set_no_urls_args ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } else { // Add path in Local files projects history gnome_entry_append_history ( GNOME_ENTRY (gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY (widget))), TRUE, tmp); /* force check for files, even if user chose "consider as * error" in preferences */ uc_utils_swap_file_proto_option (TRUE); } /* do not retrieve content (speed up the check) */ if (type == UC_PROJECT_TYPE_WEB_SITE) widget = WGET ("nwpd_speed_check"); else widget = WGET ("nlfpd_speed_check"); uc_project_set_speed_check ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* only check this directory and its subdirectories? */ if (type == UC_PROJECT_TYPE_WEB_SITE) widget = WGET ("nwpd_check_chroot"); else widget = WGET ("nlfpd_check_chroot"); uc_project_set_check_chroot ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); /* only check local links */ if (type == UC_PROJECT_TYPE_WEB_SITE) widget = WGET ("nwpd_limit_local"); else widget = WGET ("nlfpd_limit_local"); uc_project_set_limit_local ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); widget = WGET ("mw_project_type"); if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) gtk_label_set_markup ( GTK_LABEL (widget), _("[Local file] Page information")); else gtk_label_set_markup ( GTK_LABEL (widget), _("[Web site] Page information")); if (type == UC_PROJECT_TYPE_WEB_SITE) gtk_widget_hide (WGET ("new_web_project_dialog")); else gtk_widget_hide (WGET ("new_local_file_project_dialog")); UC_UPDATE_UI; uc_web_site_begin_check (); uc_project_set_speed_check (FALSE); /* restore original options for file protocol */ if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (FALSE); g_free (tmp_url), tmp_url = NULL; g_free (tmp), tmp = NULL; return TRUE; } } } uc_application_dialog_show (err_msg, GTK_MESSAGE_ERROR); g_free (tmp_url), tmp_url = NULL; g_free (tmp), tmp = NULL; return FALSE; } /** * uc_application_get_bookmarks_project_data: * * Retrieving bookmarks file to check. */ void uc_application_get_bookmarks_project_data (void) { GtkWidget *widget = NULL; gchar *file = NULL; gchar *file_real = NULL; gboolean remote_file = FALSE; UCBookmarksType btype = UC_BOOKMARKS_TYPE_NONE; widget = WGET ("nbpd_project_bookmarks_file"); file = gnome_file_entry_get_full_path (GNOME_FILE_ENTRY (widget), FALSE); if (file == NULL || strlen (file) == 0) { uc_application_dialog_show ( _("Please choose a bookmarks file to check."), GTK_MESSAGE_ERROR); return; } /* Extract URL from path, or leave path */ if (!(file_real = uc_url_extract_url_from_local_path (file))) file_real = g_strdup (file); /* This is a URL instead of a local file */ if (uc_url_is_valid (file_real)) { UCLinkProperties *prop = NULL; gchar *file_content = NULL; gchar *project_host = NULL; gchar *host = NULL; gchar *port = NULL; gchar *path = NULL; gchar *args = NULL; gchar *src = NULL; /* Get the file on the network and save it on local */ project_host = uc_url_get_hostname (NULL, file_real); uc_project_set_current_host (project_host); uc_url_parse (project_host, "", file_real, &host, &port, &path, &args); g_free (project_host), project_host = NULL; prop = uc_check_link_properties_node_new (); prop->protocol = uc_url_get_protocol (file_real); prop->h_name = host; prop->port = uc_url_get_port (file_real); prop->path = path; prop->args = args; prop->is_downloadable = TRUE; prop->header = uc_check_url_get_header (prop); file_content = uc_check_url_get_content (prop, "", "", "", ""); g_free (file_content), file_content = NULL; g_free (port), port = NULL; g_free (file_real), file_real = NULL; src = uc_utils_convert_uid2file (prop->uid); if (src && g_file_test (src, G_FILE_TEST_EXISTS)) { file_real = g_strdup_printf ("/tmp/.gurlchecker_bookmarks_%u-%u.tmp", prop->uid, getpid ()); remote_file = TRUE; uc_utils_copy (src, file_real); } else uc_application_dialog_show ( _("A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay."), GTK_MESSAGE_ERROR); g_free (src), src = NULL; uc_lists_checked_links_node_free (NULL, &prop); if (!file_real) return; } /* This is a local file */ else if (!g_file_test (file_real, G_FILE_TEST_EXISTS)) { uc_application_dialog_show ( _("Either the file is not correct or your don't have appropriate " "rights on it.\n" "Please choose a valid bookmarks file."), GTK_MESSAGE_ERROR); g_free (file_real), file_real = NULL; return; } // For the moment we accept only XBEL, Google Chrome JSON, Opera and // Firefox sqlite3 format btype = uc_bookmarks_guess_type (file_real); if (btype == UC_BOOKMARKS_TYPE_NONE) { #if defined(ENABLE_SQLITE3) && defined(ENABLE_JSON) uc_application_dialog_show ( _("The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, " "Google Chrome, and Firefox database " "file."), GTK_MESSAGE_ERROR); #elif defined(ENABLE_SQLITE3) uc_application_dialog_show ( _("The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, " "Opera and Firefox database file."), GTK_MESSAGE_ERROR); #elif defined(ENABLE_JSON) uc_application_dialog_show ( _("The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, " "Opera and Google Chrome file."), GTK_MESSAGE_ERROR); #else uc_application_dialog_show ( _("The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and " "Opera file."), GTK_MESSAGE_ERROR); #endif g_free (file_real), file_real = NULL; return; } uc_project_new (); uc_project_set_type (UC_PROJECT_TYPE_BOOKMARKS); widget = WGET ("mw_project_type"); if (remote_file) gtk_label_set_markup (GTK_LABEL (widget), _("[Remote bookmarks] Page information")); else gtk_label_set_markup (GTK_LABEL (widget), _("[Local bookmarks] Page information")); widget = WGET ("nbpd_project_bookmarks_file"); // Add path in Bookmarks projects history gnome_entry_append_history (GNOME_ENTRY (gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY (widget))), TRUE, file_real); /* do not retrieve content (speed up the check) */ widget = WGET ("nbpd_speed_check"); uc_project_set_speed_check ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); uc_project_set_bookmarks_file (file_real); uc_project_set_bookmarks_type (btype); gtk_widget_hide (WGET ("new_bookmarks_project_dialog")); UC_UPDATE_UI; uc_bookmarks_begin_check (); if (remote_file) unlink (file_real); g_free (file_real), file_real = NULL; // FIXME // For the moment we are not able to manage projects // for bookmarks files... uc_project_set_save (FALSE); uc_project_set_save_bookmarks (FALSE); } /** * uc_application_draw_main_frames: * * Draw the two principals main frames * for displaying urls list and headers. */ void uc_application_draw_main_frames (void) { GtkWidget *main_frames = NULL; GtkWidget *right_frames = NULL; GtkWidget *urls_list = NULL; GtkWidget *scrolled_window = NULL; main_frames = WGET ("mw_main_frames"); right_frames = WGET ("mw_right_frames"); scrolled_window = WGET ("mw_scrolled_window"); UC_GET_WIDGET ("urls_list", WGET ("main_window"), urls_list); if (urls_list != NULL) gtk_widget_destroy (urls_list), urls_list = NULL; urls_list = gtk_tree_view_new (); gtk_widget_show_all (urls_list); gtk_container_add (GTK_CONTAINER (scrolled_window), urls_list); UC_SET_WIDGET ("urls_list", WGET ("main_window"), urls_list); g_signal_connect (G_OBJECT (urls_list), "cursor_changed", G_CALLBACK (on_urls_list_cursor_changed), NULL); g_signal_connect (G_OBJECT (urls_list), "button_press_event", G_CALLBACK (on_url_list_mouse_clicked), NULL); g_signal_connect (G_OBJECT (urls_list), "button_release_event", G_CALLBACK (on_url_list_mouse_clicked), NULL); g_signal_connect (G_OBJECT (urls_list), "motion-notify-event", G_CALLBACK (on_main_treeview_motion_notify_event), NULL); g_signal_connect (G_OBJECT (urls_list), "leave_notify_event", G_CALLBACK (on_main_treeview_leave_notify_event), NULL); g_signal_connect (G_OBJECT (urls_list), "enter_notify_event", G_CALLBACK (on_main_treeview_enter_notify_event), NULL); gtk_widget_show_all (right_frames); gtk_widget_show_all (main_frames); } static gboolean uc_application_get_urls_user_action_value_cb (gpointer key, gpointer value, gpointer data) { return (strcmp (((UCURLsUserActions *) value)->label, (gchar *) data) == 0); } /** * uc_application_get_urls_user_action_by_value: * @value: user action value. * * Get a action by its value. * * Returns: A #UCURLsUserActions action node associated with the given value. */ UCURLsUserActions * uc_application_get_urls_user_action_by_value (gchar * value) { UCURLsUserActions *a = NULL; if (value != NULL) a = g_hash_table_find (uc_application_urls_user_actions_hash, uc_application_get_urls_user_action_value_cb, (gpointer) value); if (a == NULL) { if (value != NULL && strlen (value) > 0) { a = g_new0 (UCURLsUserActions, 1); a->id = g_strdup (value); a->label = g_strdup (value); g_hash_table_replace (uc_application_urls_user_actions_hash, g_strdup (value), (gpointer) a); } else a = g_hash_table_lookup (uc_application_urls_user_actions_hash, "none"); } return a; } /** * uc_application_get_urls_user_action: * @key: user action key. * * Get a action by its key. * * Returns: A #UCURLsUserActions action node associated with the given id. */ UCURLsUserActions * uc_application_get_urls_user_action (gchar * key) { UCURLsUserActions *a = NULL; if (key != NULL) a = g_hash_table_lookup (uc_application_urls_user_actions_hash, key); if (a == NULL) { if (key != NULL && strlen (key) > 0) { a = g_new0 (UCURLsUserActions, 1); a->id = g_strdup (key); a->label = g_strdup (key); g_hash_table_replace (uc_application_urls_user_actions_hash, g_strdup (key), (gpointer) a); } else a = g_hash_table_lookup (uc_application_urls_user_actions_hash, "none"); } return a; } /** * uc_application_get_status_code_properties: * @status_code: Status code to work with. * * Return properties for a given status code. * * Returns: #UCStatusCode propertie node associated with the given status code. */ UCStatusCode * uc_application_get_status_code_properties (const gchar * status_code) { UCStatusCode *sc = NULL; if (status_code != NULL) sc = g_hash_table_lookup (uc_application_status_code_properties_hash, status_code); if (sc == NULL) sc = g_hash_table_lookup (uc_application_status_code_properties_hash, UC_STATUS_CODE_UNKNOWN); return sc; } /** * uc_application_quit: * * Do a clean application exit. * * returns: ~TRUE if we must quit application. */ gboolean uc_application_quit (void) { if (!uc_project_save_all ()) return TRUE; else if (uc_project_get_id ()) uc_project_report_save (); uc_application_clean_data (); return FALSE; } /** * uc_application_clean_data: * * General clean up routine call at application * exit. */ void uc_application_clean_data (void) { uc_application_set_status_bar (0, _("Cleaning...")); UC_UPDATE_UI; uc_application_remove_paths (); uc_project_free (); uc_cookies_free (); uc_search_free (); uc_lists_checked_links_free (); uc_lists_already_checked_free (); if (uc_project_get_check_is_bookmarks ()) uc_bookmarks_free (); uc_timeout_domains_free (); g_hash_table_destroy (uc_application_status_code_properties_hash), uc_application_status_code_properties_hash = NULL; if (treestore_filter_directories != NULL) g_object_unref (treestore_filter_directories), treestore_filter_directories = NULL; if (treestore_filter_domains != NULL) g_object_unref (treestore_filter_domains), treestore_filter_domains = NULL; if (treestore_search != NULL) g_object_unref (treestore_search), treestore_search = NULL; if (treestore != NULL) g_object_unref (treestore), treestore = NULL; if (security_alert_icon) g_object_unref (security_alert_icon), security_alert_icon = NULL; if (w3c_alert_icon) g_object_unref (w3c_alert_icon), w3c_alert_icon = NULL; if (empty_icon) g_object_unref (empty_icon), empty_icon = NULL; } /** * uc_application_globals_init: * * Initialisation of all globals. */ void uc_application_globals_init (void) { /* global pointer for glade xml file */ glade = NULL; /* treeview pointers */ treeview = NULL; treeview_filter_directories = NULL; treeview_projects = NULL; treeview_filter_domains = NULL; treeview_search = NULL; /* treestore for the url treeview list */ treestore = NULL; treestore_filter_directories = NULL; treestore_filter_domains = NULL; treestore_search = NULL; UC_DISPLAY_SET_ALL; /* Globals icons */ empty_icon = gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/empty_icon.png", NULL); security_alert_icon = gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/security_alert.png", NULL); w3c_alert_icon = gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/w3c_alert.png", NULL); uc_refresh_page = FALSE; glade = glade_xml_new (UC_GLADE_XML_FILENAME, NULL, NULL); glade_xml_signal_autoconnect (glade); uc_application_status_code_properties_init (); uc_application_urls_user_actions_init (); uc_application_build_projects_treeview (); } /** * uc_application_init: * @url: the command line URL, or %NULL * @auth_user: user for authentication. * @auth_password: password for authentication. * @no_urls_args: if %TRUE, do not check URL with arguments * * gURLChecker initialization. */ void uc_application_init (gchar * url, gchar * auth_user, gchar * auth_password, gboolean no_urls_args) { uc_conn_init (); uc_timeout_domains_init (); uc_tooltips_init (); uc_application_menu_init (); uc_project_free (); uc_check_reset (); uc_project_xml_load_settings (NULL); uc_project_projects_list_load (); uc_application_draw_main_frames (); UC_UPDATE_UI; /* if user specified a url to check on * command line, go and check it */ if (url) { uc_project_set_url (url); if (auth_user && auth_password) { gchar *auth_line = NULL; auth_line = uc_utils_build_auth_line (auth_user, auth_password); uc_project_set_auth_line (auth_line); g_free (auth_line), auth_line = NULL; } uc_project_set_no_urls_args (no_urls_args); uc_web_site_begin_check (); } } /** * uc_application_make_paths: * * Create the directories needed by gURLChecker. */ void uc_application_make_paths (void) { gchar *path = NULL; path = g_strconcat (uc_project_get_working_path (), "/", uc_project_get_cache_name (), NULL); uc_utils_mkdirs (path, TRUE); g_free (path), path = NULL; path = g_strconcat (uc_project_get_working_path (), "/projects", NULL); uc_utils_mkdirs (path, TRUE); g_free (path), path = NULL; } /** * uc_application_menu_init: * * First menu items management. */ static void uc_application_menu_init (void) { /* no treeview, then no display options */ WSENS ("mwm_display", FALSE); WSENS ("mwm_find", FALSE); uc_project_set_save (FALSE); uc_project_set_save_bookmarks (FALSE); WSENS ("bt_ignore_progress_dialog", TRUE); WSENS ("bt_suspend_progress_dialog", TRUE); WSENS ("mwm_delete_all_bad_links", FALSE); WSENS ("mwm_report_export", FALSE); WSENS ("mwm_delete_project", FALSE); WSENS ("mwm_refresh_all", FALSE); WSENS ("mwm_refresh_main_page", FALSE); WSENS ("mwm_project_properties", FALSE); #ifndef ENABLE_GNUTLS WSENS ("mwm_https_protocol", FALSE); #endif #ifndef ENABLE_CLAMAV WSENS ("mwm_display_security_alerts", FALSE); #endif #ifndef ENABLE_TIDY WSENS ("mwm_display_w3c_alerts", FALSE); #endif } /** * uc_application_set_status_bar: * @progress: 0, or a value if we want progress bar on the * status bar. * @msg: message to display in satus bar. * * Refresh application status bar. */ void uc_application_set_status_bar (const gfloat progress, const gchar * msg) { GtkWidget *widget = NULL; widget = WGET ("status_bar"); if (progress > 0) gnome_appbar_set_progress_percentage (GNOME_APPBAR (widget), progress); if (msg != NULL) gnome_appbar_push (GNOME_APPBAR (widget), msg); } gurlchecker-0.13.1/src/bookmarks.h0000644000175000017500000000261211334342075013746 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_BOOKMARKS #define H_UC_BOOKMARKS #include "general.h" void uc_bookmarks_free (void); UCBookmarksType uc_bookmarks_guess_type (const gchar *file); gint uc_bookmarks_save_changes (void); void uc_bookmarks_delete_bad_links (GList *list); void uc_bookmarks_delete_link (UCLinkProperties *prop); gboolean uc_bookmarks_format_is_googlechrome (const gchar * file); gboolean uc_bookmarks_format_is_firefox (const gchar *file); gboolean uc_bookmarks_format_is_xbel (const gchar * file); gboolean uc_bookmarks_format_is_opera (const gchar * file); void uc_bookmarks_begin_check (void); #endif gurlchecker-0.13.1/src/connection.h0000644000175000017500000000203011345760344014114 00000000000000/* * Copyright (C) 2002-2007 * Emmanuel Saracco * * 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. */ #ifndef H_UC_CONNECTION #define H_UC_CONNECTION void uc_conn_init (void); GArray *uc_server_get_response (const gchar * proto, gchar * host, const guint port, gchar * buffer, gboolean header_request, gchar **ip); #endif gurlchecker-0.13.1/src/Makefile.am0000644000175000017500000000204111333256330013632 00000000000000 AM_CFLAGS = \ @GNUTLS_FLAGS@ @CLAMAV_FLAGS@ @TIDY_FLAGS@ @CROCO_FLAGS@ \ @SQLITE3_FLAGS@ @JSON_FLAGS@ \ -Wall -export-dynamic CLEANFILES = *~ MAINTAINERCLEANFILES = Makefile.in INCLUDES = \ -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @PACKAGE_CFLAGS@ bin_PROGRAMS = gurlchecker gurlchecker_SOURCES = \ application.c application.h \ bookmarks.c bookmarks.h \ cache.c cache.h \ callbacks.c callbacks.h \ check.c check.h \ connection.c connection.h \ general.h \ getopt1.c getopt.c getopt.h \ html_parser.c html_parser.h \ lists.c lists.h \ main.c \ project.c project.h \ report.c report.h \ search.c search.h \ timeout.c timeout.h \ tooltips.c tooltips.h \ ucclam.c ucclam.h \ uccroco.c uccroco.h \ uctidy.c uctidy.h \ url.c url.h \ utils.c utils.h \ web_site.c web_site.h \ cookies.c cookies.h gurlchecker_LDADD = \ @PACKAGE_LIBS@ \ @GNUTLS_LIBS@ @CLAMAV_LIBS@ @TIDY_LIBS@ @CROCO_LIBS@ \ @SQLITE3_LIBS@ @JSON_LIBS@\ -lresolv gurlchecker-0.13.1/src/web_site.c0000644000175000017500000006162211330566312013556 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "application.h" #include "check.h" #include "project.h" #include "url.h" #include "report.h" #include "lists.h" #include "html_parser.h" #include "utils.h" #include "timeout.h" #include "web_site.h" static GList *uc_web_site_old_childs_list = NULL; static void uc_web_site_refresh_branch_real (GList * list); static void uc_web_site_refresh_link_real (UCLinkProperties * prop); static void uc_web_site_refresh_apply_diff (GList * list, GList * sav, UCLinkProperties * prop); static void uc_web_site_refresh_main_page (UCLinkProperties * prop); static void uc_web_site_refresh_apply_diff_main (GList * list, GList * sav, GList * main_list); static UCLinkProperties *uc_web_site_get_old_child (const gchar * url); static GList *uc_web_site_url_get_links (UCLinkProperties * url, const guint depth); /* * get all the links of a page */ GList * uc_web_site_get_links_real (UCLinkProperties * prop, const gchar * host, const guint depth) { UCLinkProperties *lp = NULL; GList *list = NULL; GList *item = NULL; gchar *current_host = NULL; gchar *current_path = NULL; gchar *current_port = NULL; gchar *current_args = NULL; gboolean accept = FALSE; uc_url_parse (prop->h_name, prop->path, prop->url, ¤t_host, ¤t_port, ¤t_path, ¤t_args); if (prop->tags != NULL) { item = g_list_first (prop->tags); while (UC_CHECK_PARSER_WHILE_CONDITION) { gchar *normalized_url = NULL; UCHTMLTag *tag = (UCHTMLTag *) item->data; UCLinkProperties *old_prop = NULL; item = g_list_next (item); // META tag (already processed in the // uc_check_link_get_properties () function) if (tag->type == LINK_TYPE_META || tag->type == LINK_TYPE_NONE) continue; uc_report_set_alllinks (-1); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_SECOND, tag->value); UC_UPDATE_UI; normalized_url = uc_url_normalize (current_host, current_path, tag->value); uc_check_currentitem_init (prop, current_host, tag, normalized_url, FALSE); if (uc_check_refresh_link_get_value ()) old_prop = uc_web_site_get_old_child (normalized_url); // Retrieve properties of the link and check if its ok for register lp = uc_check_link_get_properties (depth, current_host, current_path, (UCHTMLTag *) tag, old_prop, &accept, 0); if (lp != NULL && accept) { lp->normalized_url = normalized_url; list = g_list_append (list, uc_check_register_link (normalized_url, lp)); // Run security tests if requested */ if (uc_project_get_security_checks ("any")) uc_check_run_security_checks (lp); // Run w3c tests if requested */ if (uc_project_get_w3c_checks ("any")) uc_check_run_w3c_checks (lp); uc_check_wait (); } // Rejected link else { if (lp != NULL) uc_lists_checked_links_node_free (NULL, &lp); g_free (normalized_url), normalized_url = NULL; } uc_report_display_update (); } } if (current_host) g_free (current_host), current_host = NULL; if (current_port) g_free (current_port), current_port = NULL; if (current_path) g_free (current_path), current_path = NULL; if (current_args) g_free (current_args), current_args = NULL; return list; } /* * put in a list all the urls of * a given url */ static GList * uc_web_site_url_get_links (UCLinkProperties * prop, const guint depth) { gchar *host = NULL; GList *urls = NULL; GList *item = NULL; GList *tmp_list = NULL; if (prop == NULL) return NULL; host = uc_url_get_hostname ("", prop->url); if (UC_CHECK_ABORT_IF_CONDITION) { g_free (host), host = NULL; return NULL; } uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_FIRST, prop->url); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_SECOND, ""); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Searching...")); UC_UPDATE_UI; urls = uc_web_site_get_links_real (prop, host, depth); item = g_list_first (urls); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; UC_UPDATE_UI; item = g_list_next (item); /* Main project page has already been * proceed */ if (uc_check_is_main_page (lp)) continue; if (lp->is_parsable && !lp->checked) { /* Mark this link as already checked */ prop->checked = TRUE; uc_utils_debug ("Checking %s...\n", (lp->url)?lp->url:""); lp->childs = uc_web_site_url_get_links (lp, depth + 1); } tmp_list = g_list_append (tmp_list, (gpointer) lp); } g_free (host), host = NULL; g_list_free (urls), urls = NULL; return tmp_list; } static void uc_web_site_refresh_branch_real (GList * list) { GList *item = NULL; item = g_list_first (list); while (UC_CHECK_PARSER_WHILE_CONDITION) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); uc_web_site_refresh_link_real (prop); if (prop->childs != NULL && !uc_check_is_main_page (prop)) uc_web_site_refresh_branch_real (prop->childs); } } void uc_web_site_refresh_parent (const guint32 id) { GtkTreePath *treepath = NULL; UCLinkProperties *prop = NULL; prop = uc_lists_checked_links_lookup_by_uid (id); g_return_if_fail (prop != NULL); if (prop->parent != NULL) { uc_web_site_refresh_link (prop->parent->uid); treepath = gtk_tree_path_new_from_string (prop->treeview_path); gtk_tree_view_expand_row (treeview, treepath, (prop->childs != NULL)); gtk_tree_view_set_cursor (treeview, treepath, NULL, FALSE); gtk_tree_path_free (treepath), treepath = NULL; } } void uc_web_site_refresh_link (const gint32 id) { time_t t; UCLinkProperties *prop = NULL; guint timer_id = 0; if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (TRUE); uc_project_set_check_is_current (TRUE); uc_check_cancel_set_value (FALSE); uc_application_set_status_bar (0, _("Updating link...")); uc_application_progress_dialog_show (); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_FIRST, _("Check in progress...")); WSENS ("bt_ignore_progress_dialog", FALSE); WSENS ("bt_suspend_progress_dialog", FALSE); UC_UPDATE_UI; prop = uc_lists_checked_links_lookup_by_uid (id); time (&t); t -= (uc_report_get_elapsedtime () + 3600); timer_id = g_timeout_add (1000, &uc_report_timer_callback, (gpointer) t); uc_timeout_domains_free (); /* refresh link */ uc_web_site_refresh_link_real (prop); g_source_remove (timer_id), timer_id = 0; gtk_widget_hide (WGET ("progress_dialog")); /* refresh report */ uc_check_refresh_report (); uc_check_cancel_set_value (FALSE); uc_project_set_check_is_current (FALSE); if (!uc_project_get_check_is_bookmarks ()) uc_project_set_save (TRUE); uc_application_set_status_bar (0, ""); if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (FALSE); } static void uc_web_site_refresh_main_page (UCLinkProperties * prop) { GList *item = NULL; GList *sav = NULL; UCLinkProperties *new_prop = NULL; GList *list = NULL; gboolean accept = FALSE; GtkTreePath *treepath = NULL; GList *main_list = NULL; uc_check_refresh_link_set_value (TRUE); /* get main page links and set it temporarly as childs */ item = g_list_first (uc_lists_checked_links_get ()); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; if (!uc_check_is_main_page (lp)) sav = g_list_append (sav, lp); item = g_list_next (item); } prop->childs = sav; /* we will use this list to find some informations about * old childs during the new check */ uc_web_site_old_childs_list = sav; uc_lists_already_checked_links_remove_items (prop); uc_check_currentitem_init (NULL, prop->h_name, prop->tag, prop->normalized_url, FALSE); uc_lists_refresh_preserved_links_reset (); new_prop = uc_check_link_get_properties ( 0, prop->h_name, prop->current_path, (UCHTMLTag *) prop->tag, (prop->childs != NULL) ? NULL : prop, &accept, 0); if (new_prop != NULL && accept) { new_prop->normalized_url = g_strdup (prop->url); // FIXME uc_check_register_link (uc_project_get_url (), prop); list = uc_web_site_get_links_real (new_prop, new_prop->h_name, 0); main_list = uc_lists_checked_links_get (); uc_web_site_refresh_apply_diff_main (list, sav, main_list); if (list != NULL) main_list = uc_lists_refresh_preserved_links_restore (main_list); uc_lists_checked_links_set (main_list); prop->childs = NULL; g_list_free (sav), sav = NULL; /* refreshing the depth value of all nodes */ uc_check_set_depth (uc_lists_checked_links_get (), 0); } else if (new_prop != NULL) uc_lists_checked_links_node_free (NULL, &new_prop); treepath = gtk_tree_path_new_from_string (prop->treeview_path); uc_application_main_tree_display_all (); gtk_tree_view_expand_to_path (treeview, treepath); gtk_tree_view_set_cursor (treeview, treepath, NULL, FALSE); gtk_tree_path_free (treepath); uc_check_refresh_link_set_value (FALSE); uc_application_set_status_bar (0, ""); } static void uc_web_site_refresh_apply_diff_main (GList * list, GList * sav, GList * main_list) { GList *item = NULL; /* parcourir les liens recuperes */ item = g_list_first (list); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; GList *item1 = NULL; lp->parent = NULL; /* supprimer les liens qui n'existent plus */ item1 = g_list_first (sav); while (item1 != NULL) { UCLinkProperties *lp1 = (UCLinkProperties *) item1->data; GList *item2 = NULL; gboolean found = FALSE; if (lp1 != NULL) { item2 = g_list_first (list); while (item2 != NULL && !found) { UCLinkProperties *lp2 = (UCLinkProperties *) item2->data; found = (!g_ascii_strcasecmp (lp1->url, lp2->url)); item2 = g_list_next (item2); } if (!found) { uc_lists_already_checked_links_remove_branch_items (lp1); main_list = g_list_remove (main_list, (gpointer) lp1); lp1 = NULL; } } item1 = g_list_next (item1); } /* si le lien existait deja alors on lui associe * ses anciens enfants */ item1 = g_list_first (list); while (item1 != NULL) { UCLinkProperties *lp1 = (UCLinkProperties *) item1->data; if (!g_ascii_strcasecmp (lp1->url, lp->url)) { GList *item2 = NULL; g_list_free (lp->childs), lp->childs = NULL; lp->childs = lp1->childs; // FIXME lp->depth_level = 0; /* on parcours les anciens enfant et on leur donne le * nouveau pere */ item2 = g_list_first (lp->childs); while (item2 != NULL) { UCLinkProperties *lp2 = (UCLinkProperties *) item2->data; lp2->parent = lp; // FIXME lp2->depth_level = 1; item2 = g_list_next (item2); } } item1 = g_list_next (item1); } item = g_list_next (item); } /* add links that was not here before the update */ item = g_list_first (uc_lists_links_first_minus_second (list, sav)); while (item != NULL) { UCLinkProperties *lp1 = (UCLinkProperties *) item->data; main_list = g_list_append (main_list, lp1); item = g_list_next (item); } } static void uc_web_site_refresh_apply_diff (GList * list, GList * sav, UCLinkProperties * prop) { GList *item = NULL; /* parcourir les liens recuperes */ item = g_list_first (list); while (item != NULL) { UCLinkProperties *lp = (UCLinkProperties *) item->data; GList *item1 = NULL; lp->parent = prop; /* supprimer les liens qui n'existent plus */ item1 = g_list_first (sav); while (item1 != NULL) { UCLinkProperties *lp1 = (UCLinkProperties *) item1->data; GList *item2 = NULL; gboolean found = FALSE; if (lp1 != NULL) { item2 = g_list_first (list); while (item2 != NULL && !found) { UCLinkProperties *lp2 = (UCLinkProperties *) item2->data; found = (!g_ascii_strcasecmp (lp1->url, lp2->url)); item2 = g_list_next (item2); } if (!found) { uc_lists_already_checked_links_remove_branch_items (lp1); prop->childs = g_list_remove (prop->childs, (gpointer) lp1); lp1 = NULL; } } item1 = g_list_next (item1); } /* si le lien existait deja alors on lui associe * ses anciens enfants */ item1 = g_list_first (prop->childs); while (item1 != NULL) { UCLinkProperties *lp1 = (UCLinkProperties *) item1->data; if (!g_ascii_strcasecmp (lp1->url, lp->url)) { GList *item2 = NULL; g_list_free (lp->childs), lp->childs = NULL; lp->childs = lp1->childs; lp->depth_level = lp1->depth_level; /* on parcours les anciens enfants et on leur donne le * nouveau pere */ item2 = g_list_first (lp->childs); while (item2 != NULL) { UCLinkProperties *lp2 = (UCLinkProperties *) item2->data; lp2->parent = lp; lp2->depth_level = lp->depth_level + 1; item2 = g_list_next (item2); } } item1 = g_list_next (item1); } item = g_list_next (item); } } static UCLinkProperties * uc_web_site_get_old_child (const gchar * url) { GList *item = NULL; item = g_list_first (uc_web_site_old_childs_list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; if (!g_ascii_strcasecmp (url, prop->normalized_url)) return prop; item = g_list_next (item); } return NULL; } static void uc_web_site_refresh_link_real (UCLinkProperties * prop) { UCLinkProperties *new_prop = NULL; GList *list = NULL; GtkTreePath *treepath = NULL; gboolean accept = FALSE; gchar *normalized_url = NULL; UCLinkProperties *parent = NULL; gchar *old_status = NULL; gchar *new_status = NULL; /* special update method for main project page */ if (uc_check_is_main_page (prop)) { uc_web_site_refresh_main_page (prop); return; } old_status = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); /* do not check malformed links */ if (uc_check_status_is_malformed (old_status)) return; uc_check_refresh_link_set_value (TRUE); /* we will use this list to find some informations about * old childs during the new check */ uc_web_site_old_childs_list = prop->childs; parent = (prop->parent != NULL && prop->parent->link_type != LINK_TYPE_BOOKMARK_FOLDER) ? prop->parent : prop; normalized_url = uc_url_normalize (uc_project_get_current_host (), parent->path, ((UCHTMLTag *) prop->tag)->value); uc_check_currentitem_init (prop, uc_project_get_current_host (), prop->tag, normalized_url, FALSE); /* remove links in already checked list to check them * again */ uc_lists_already_checked_links_remove_items (prop); uc_lists_refresh_preserved_links_reset (); new_prop = uc_check_link_get_properties (prop->depth_level, prop->h_name, prop->current_path, (UCHTMLTag *) prop->tag, (prop->childs != NULL) ? NULL : prop, &accept, 0); if (new_prop != NULL && accept) { /* get actual status */ new_status = g_hash_table_lookup (new_prop->header, UC_HEADER_STATUS); new_prop->normalized_url = normalized_url; // FIXME uc_check_register_link (normalized_url, prop); /* we do not check other site that the main site */ if (!g_ascii_strcasecmp (uc_project_get_current_host (), prop->h_name)) if (uc_check_status_is_good (new_status)) { /* retrieve page's links */ list = uc_web_site_get_links_real (new_prop, new_prop->h_name, new_prop->depth_level); /* fusion the two childs lists (old and new) */ uc_web_site_refresh_apply_diff (list, prop->childs, prop); } prop = uc_check_copy_node (new_prop, prop); g_list_free (prop->childs), prop->childs = NULL; prop->childs = list; prop->childs = uc_lists_refresh_preserved_links_restore (prop->childs); /* refreshing teh depth value of all nodes */ uc_check_set_depth (uc_lists_checked_links_get (), 0); treepath = gtk_tree_path_new_from_string (prop->treeview_path); uc_application_main_tree_display_all (); gtk_tree_view_expand_to_path (treeview, treepath); if (uc_project_get_bookmarks_file () == NULL) gtk_tree_view_set_cursor (treeview, treepath, NULL, FALSE); gtk_tree_path_free (treepath); } else { if (new_prop != NULL) uc_lists_checked_links_node_free (NULL, &new_prop); g_free (normalized_url), normalized_url = NULL; } uc_check_refresh_link_set_value (FALSE); } void uc_web_site_refresh_branch (const gint32 id) { time_t t; guint timer_id = 0; UCLinkProperties *prop = NULL; if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (TRUE); uc_project_set_check_is_current (TRUE); uc_check_cancel_set_value (FALSE); uc_application_set_status_bar (0, _("Updating branch...")); uc_application_progress_dialog_show (); WSENS ("bt_ignore_progress_dialog", FALSE); WSENS ("bt_suspend_progress_dialog", FALSE); UC_UPDATE_UI; prop = uc_lists_checked_links_lookup_by_uid (id); g_assert (prop->childs); time (&t); t -= (uc_report_get_elapsedtime () + 3600); timer_id = g_timeout_add (1000, &uc_report_timer_callback, (gpointer) t); uc_timeout_domains_free (); /* refresh links */ uc_web_site_refresh_link_real (prop); uc_web_site_refresh_branch_real (prop->childs); g_source_remove (timer_id), timer_id = 0; gtk_widget_hide (WGET ("progress_dialog")); /* refresh report */ uc_check_refresh_report (); uc_project_set_check_is_current (FALSE); uc_check_cancel_set_value (FALSE); if (!uc_project_get_check_is_bookmarks ()) uc_project_set_save (TRUE); uc_application_set_status_bar (0, ""); if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (FALSE); } void uc_web_site_refresh_all (void) { time_t t; guint timer_id = 0; if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (TRUE); uc_project_set_check_is_current (TRUE); uc_check_cancel_set_value (FALSE); uc_application_set_status_bar (0, _("Updating all project...")); uc_application_progress_dialog_show (); WSENS ("bt_ignore_progress_dialog", FALSE); WSENS ("bt_suspend_progress_dialog", FALSE); UC_UPDATE_UI; time (&t); t -= (uc_report_get_elapsedtime () + 3600); timer_id = g_timeout_add (1000, &uc_report_timer_callback, (gpointer) t); uc_timeout_domains_free (); /* refresh links */ uc_web_site_refresh_branch_real (uc_lists_checked_links_get ()); g_source_remove (timer_id), timer_id = 0; gtk_widget_hide (WGET ("progress_dialog")); /* refresh report */ uc_check_refresh_report (); uc_project_set_check_is_current (FALSE); uc_check_cancel_set_value (FALSE); if (!uc_project_get_check_is_bookmarks ()) uc_project_set_save (TRUE); uc_application_set_status_bar (0, ""); if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) uc_utils_swap_file_proto_option (FALSE); } /* * begin the page urls check */ void uc_web_site_begin_check (void) { UCLinkProperties *prop = NULL; GtkWidget *widget = NULL; GList *list = NULL; gchar *tmp = NULL; guint timer_id = 0; gboolean accept = FALSE; gboolean have_result = FALSE; gboolean have_redir = FALSE; UCHTMLTag *tag = NULL; gchar *error_msg = NULL; GtkTreeIter iter; uc_application_draw_main_frames (); uc_application_progress_dialog_show (); WSENS ("pd_dynamic_values_security_checks", uc_project_get_type () == UC_PROJECT_TYPE_WEB_SITE); UC_GET_WIDGET ("urls_list", WGET ("main_window"), widget); treeview = GTK_TREE_VIEW (widget); treestore = gtk_tree_store_new (N_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); uc_application_build_url_treeview (); gtk_widget_show (widget); /* set general project settings */ tmp = uc_url_get_hostname (NULL, uc_project_get_url ()); uc_project_set_current_host (tmp); g_free (tmp), tmp = NULL; tmp = uc_url_get_port (uc_project_get_url ()); uc_project_set_current_port (tmp); g_free (tmp), tmp = NULL; tmp = g_strdup_printf (_("Checking %s..."), uc_project_get_url ()); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_FIRST, tmp); g_free (tmp), tmp = NULL; /* main window title */ tmp = g_strconcat ("gURLChecker ", UC_VERSION, " - ", uc_project_get_url (), NULL); gtk_window_set_title (GTK_WINDOW (WGET ("main_window")), tmp); g_free (tmp), tmp = NULL; /* check timer */ timer_id = g_timeout_add (1000, &uc_report_timer_callback, NULL); /* create the first node (main page) */ tag = uc_html_parser_node_new (); tag->label = g_strdup (_("MAIN PAGE")); tag->value = g_strdup (uc_project_get_url ()); tag->type = (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) ? LINK_TYPE_FILE_HREF : LINK_TYPE_HREF; UC_UPDATE_UI; /* get properties for the main page */ uc_check_currentitem_init (NULL, uc_project_get_current_host (), tag, uc_project_get_url (), TRUE); prop = uc_check_link_get_properties (0, uc_project_get_current_host (), "", (UCHTMLTag *) tag, NULL, &accept, 0); if (prop != NULL) { /* authentication needed but user did not provided login/password */ if (!strcmp (g_hash_table_lookup (prop->header, UC_HEADER_STATUS), UC_STATUS_CODE_RESTRICTED)) { error_msg = _("Access to the specified project URL is restricted.\n" "Check has been cancelled"); goto cancel_check; } prop->is_parsable = TRUE; /* if there was a redirection for the main url */ have_redir = (g_ascii_strcasecmp (prop->h_name, uc_project_get_current_host ())); if (have_redir) uc_project_set_current_host (prop->h_name); uc_utils_debug ("Checking %s...\n", (prop->url)?prop->url:""); /* retreive project's pages */ uc_project_set_check_is_current (TRUE); uc_project_set_check_is_main (TRUE); prop->normalized_url = uc_url_normalize (uc_project_get_current_host (), "", tag->value); uc_lists_already_checked_links_append (prop->normalized_url, prop); list = uc_web_site_url_get_links (prop, 0); uc_project_set_check_is_main (FALSE); uc_project_set_check_is_current (FALSE); /* if there is some result, display it in the main * tree view */ // FIXME if (g_list_length (list) >= 1) { have_result = TRUE; list = g_list_prepend (list, prop); uc_lists_checked_links_set (list); /* display main tree view */ gtk_tree_store_clear (treestore); UC_DISPLAY_SET_ALL; uc_check_display_list (uc_lists_checked_links_get (), NULL, iter); /* update application menu */ WSENS ("mwm_delete_all_bad_links", FALSE); WSENS ("mwm_display", TRUE); WSENS ("mwm_refresh_all", TRUE); WSENS ("mwm_refresh_main_page", TRUE); WSENS ("mwm_find", !uc_project_get_speed_check ()); WSENS ("mwm_project_properties", TRUE); #ifndef ENABLE_GNUTLS if (strcmp (prop->protocol, UC_PROTOCOL_HTTPS) == 0) WSENS ("mwm_refresh_main_page", FALSE); #endif #ifdef ENABLE_CLAMAV WSENS ("mwm_display_security_alerts", !uc_project_get_speed_check ()); #endif uc_project_set_save (TRUE); } } if (!have_result) error_msg = _("The specified project URL does not respond.\n" "Check has been cancelled."); cancel_check: if (error_msg) uc_application_dialog_show (error_msg, GTK_MESSAGE_ERROR); g_source_remove (timer_id), timer_id = 0; uc_check_cancel_set_value (FALSE); gtk_widget_hide (WGET ("progress_dialog")); } gurlchecker-0.13.1/src/getopt.c0000644000175000017500000007331311275575425013274 00000000000000/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO # define _NO_PROTO #endif #ifdef HAVE_CONFIG_H # include #endif #if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ # ifndef const # define const # endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 # include # if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION # define ELIDE_CODE # endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ # include # include #endif /* GNU C library. */ #ifdef VMS # include # if HAVE_STRING_H - 0 # include # endif #endif #ifndef _ /* This is for other GNU distributions with internationalized messages. When compiling libc, the _ macro is predefined. */ # ifdef HAVE_LIBINTL_H # include # define _(msgid) gettext (msgid) # else # define _(msgid) (msgid) # endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Formerly, initialization of getopt depended on optind==0, which causes problems with re-calling getopt as programs generally don't know that. */ int __getopt_initialized; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return -1 with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ # include # define my_index strchr #else # if HAVE_STRING_H # include # else # include # endif /* Avoid depending on library functions or files whose names are inconsistent. */ #ifndef getenv extern char *getenv (); #endif static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ # if (!defined __STDC__ || !__STDC__) && !defined strlen /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); # endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; #ifdef _LIBC /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; static int nonoption_flags_max_len; static int nonoption_flags_len; static int original_argc; static char *const *original_argv; /* Make sure the environment variable bash 2.0 puts in the environment is valid for the getopt call we must make sure that the ARGV passed to getopt is that one passed to the process. */ static void __attribute__ ((unused)) store_args_and_env (int argc, char *const *argv) { /* XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ original_argc = argc; original_argv = argv; } # ifdef text_set_element text_set_element (__libc_subinit, store_args_and_env); # endif /* text_set_element */ # define SWAP_FLAGS(ch1, ch2) \ if (nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ #if defined __STDC__ && __STDC__ static void exchange (char **); #endif static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #ifdef _LIBC /* First make sure the handling of the `__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) nonoption_flags_len = nonoption_flags_max_len = 0; else { memset (__mempcpy (new_str, __getopt_nonoption_flags, nonoption_flags_max_len), '\0', top + 1 - nonoption_flags_max_len); nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ #if defined __STDC__ && __STDC__ static const char *_getopt_initialize (int, char *const *, const char *); #endif static const char * _getopt_initialize (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; #ifdef _LIBC if (posixly_correct == NULL && argc == original_argc && argv == original_argv) { if (nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = nonoption_flags_max_len = strlen (orig_str); if (nonoption_flags_max_len < argc) nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) nonoption_flags_max_len = -1; else memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), '\0', nonoption_flags_max_len - len); } } nonoption_flags_len = nonoption_flags_max_len; } else nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns -1. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { int print_errors = opterr; if (optstring[0] == ':') print_errors = 0; optarg = NULL; if (optind == 0 || !__getopt_initialized) { if (optind == 0) optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring); __getopt_initialized = 1; } /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ || (optind < nonoption_flags_len \ && __getopt_nonoption_flags[optind] == '1')) #else # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (last_nonopt > optind) last_nonopt = optind; if (first_nonopt > optind) first_nonopt = optind; if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && NONOPTION_P) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (ordering == REQUIRE_ORDER) return -1; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = -1; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (print_errors) fprintf (stderr, _ ("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; optopt = 0; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (print_errors) { if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, _ ("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, _ ("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); } nextchar += strlen (nextchar); optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (print_errors) fprintf (stderr, _ ("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (print_errors) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, _ ("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ fprintf (stderr, _ ("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (print_errors) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); else fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (print_errors) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _ ("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (print_errors) fprintf (stderr, _ ("%s: option `-W %s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (print_errors) fprintf (stderr, _("\ %s: option `-W %s' doesn't allow an argument\n"), argv[0], pfound->name); nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (print_errors) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (print_errors) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _ ("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* Not ELIDE_CODE. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ gurlchecker-0.13.1/src/cache.c0000644000175000017500000000557111327240425013021 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "cache.h" /** * uc_cache_change_id: * @old: Old #UCLinkProperties node id. * @new: New #UCLinkProperties node id. * * Replace "old" with "new" (swap cached files). Mainly used after rescanning * a link. */ void uc_cache_change_id (const guint32 old, const guint32 new) { FILE *fd; gchar *buffer = NULL; gchar *path = NULL; gsize length = 0; if ((buffer = uc_cache_get_source (new, &length)) == NULL) return; path = uc_utils_convert_uid2file (old); fd = fopen (path, "w"); g_free (path), path = NULL; g_assert (fd != NULL); fwrite (buffer, 1, length, fd); fclose (fd); path = uc_utils_convert_uid2file (new); unlink (path); g_free (path), path = NULL; g_free (buffer), buffer = NULL; } /** * uc_cache_get_source: * @id: #UCLinkProperties node id of the wanted link content. * @length: Set this argument with the size of the returned buffer. * * Retreive the source page in cache for a link. * * Returns: The source code of the given #UCLinkProperties node id. */ gchar * uc_cache_get_source (const guint32 id, gsize * length) { gchar *buffer = NULL; gchar *path = NULL; path = uc_utils_convert_uid2file (id); g_assert (path != NULL); buffer = uc_utils_get_file_content (path, &(*length)); g_free (path), path = NULL; return buffer; } /** * uc_cache_append_source: * @id: #UCLinkProperties node id of the element to put in cache. * @src: Content to work with. * @length: Lenght of the given buffer. * * Put a source page in the cache. */ void uc_cache_append_source (const guint32 id, gchar * src, const gsize length) { FILE *fd = NULL; gchar *path = NULL; gchar *src_tmp = NULL; if (src == NULL || strlen (src) == 0 || (path = uc_utils_convert_uid2file (id)) == NULL) { g_warning ("No data to cache!"); return; } // Pass HTTP header src_tmp = uc_utils_search_string_next (src, "\r\n\r\n", '<'); if (src_tmp != NULL) { fd = fopen (path, "wb"); g_assert (fd != NULL); fwrite (src_tmp, 1, length, fd); fclose (fd); } g_free (path), path = NULL; } gurlchecker-0.13.1/src/tooltips.h0000644000175000017500000000327211275575426013652 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_TOOLTIPS #define H_UC_TOOLTIPS #include "general.h" void uc_tooltips_main_set_display (const gboolean value); gboolean uc_tooltips_main_get_display (void); void uc_tooltips_init (void); void uc_tooltips_main_set_mouse_coord (const gint32 x, const gint32 y); guint32 uc_tooltips_main_get_current_id (void); void uc_tooltips_main_set_current_id (const guint32 id); guint32 uc_tooltips_main_get_last_id (void); void uc_tooltips_main_set_last_id (const guint32 id); void uc_tooltips_main_get_mouse_coord (gint32 * x, gint32 * y); void uc_tooltips_main_set_mouse_coord (const gint32 x, const gint32 y); void uc_tooltips_main_set_frozen (const gboolean value); gboolean uc_tooltips_main_get_frozen (void); void uc_tooltips_main_destroy (void); gboolean uc_tooltips_main_get_active (void); void uc_tooltips_main_set_active (const gboolean value); gboolean uc_tooltips_get_frozen (void); #endif gurlchecker-0.13.1/src/Makefile.in0000644000175000017500000005001111530645265013653 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = gurlchecker$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_gurlchecker_OBJECTS = application.$(OBJEXT) bookmarks.$(OBJEXT) \ cache.$(OBJEXT) callbacks.$(OBJEXT) check.$(OBJEXT) \ connection.$(OBJEXT) getopt1.$(OBJEXT) getopt.$(OBJEXT) \ html_parser.$(OBJEXT) lists.$(OBJEXT) main.$(OBJEXT) \ project.$(OBJEXT) report.$(OBJEXT) search.$(OBJEXT) \ timeout.$(OBJEXT) tooltips.$(OBJEXT) ucclam.$(OBJEXT) \ uccroco.$(OBJEXT) uctidy.$(OBJEXT) url.$(OBJEXT) \ utils.$(OBJEXT) web_site.$(OBJEXT) cookies.$(OBJEXT) gurlchecker_OBJECTS = $(am_gurlchecker_OBJECTS) gurlchecker_DEPENDENCIES = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(gurlchecker_SOURCES) DIST_SOURCES = $(gurlchecker_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLAMAV_FLAGS = @CLAMAV_FLAGS@ CLAMAV_LIBS = @CLAMAV_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROCO_CFLAGS = @CROCO_CFLAGS@ CROCO_FLAGS = @CROCO_FLAGS@ CROCO_LIBS = @CROCO_LIBS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNUTLS_FLAGS = @GNUTLS_FLAGS@ GNUTLS_LIBS = @GNUTLS_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_DOC_CFLAGS = @GTK_DOC_CFLAGS@ GTK_DOC_LIBS = @GTK_DOC_LIBS@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ JSON_CFLAGS = @JSON_CFLAGS@ JSON_FLAGS = @JSON_FLAGS@ JSON_LIBS = @JSON_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SQLITE3_CFLAGS = @SQLITE3_CFLAGS@ SQLITE3_FLAGS = @SQLITE3_FLAGS@ SQLITE3_LIBS = @SQLITE3_LIBS@ STRIP = @STRIP@ TIDY_FLAGS = @TIDY_FLAGS@ TIDY_LIBS = @TIDY_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = \ @GNUTLS_FLAGS@ @CLAMAV_FLAGS@ @TIDY_FLAGS@ @CROCO_FLAGS@ \ @SQLITE3_FLAGS@ @JSON_FLAGS@ \ -Wall -export-dynamic CLEANFILES = *~ MAINTAINERCLEANFILES = Makefile.in INCLUDES = \ -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @PACKAGE_CFLAGS@ gurlchecker_SOURCES = \ application.c application.h \ bookmarks.c bookmarks.h \ cache.c cache.h \ callbacks.c callbacks.h \ check.c check.h \ connection.c connection.h \ general.h \ getopt1.c getopt.c getopt.h \ html_parser.c html_parser.h \ lists.c lists.h \ main.c \ project.c project.h \ report.c report.h \ search.c search.h \ timeout.c timeout.h \ tooltips.c tooltips.h \ ucclam.c ucclam.h \ uccroco.c uccroco.h \ uctidy.c uctidy.h \ url.c url.h \ utils.c utils.h \ web_site.c web_site.h \ cookies.c cookies.h gurlchecker_LDADD = \ @PACKAGE_LIBS@ \ @GNUTLS_LIBS@ @CLAMAV_LIBS@ @TIDY_LIBS@ @CROCO_LIBS@ \ @SQLITE3_LIBS@ @JSON_LIBS@\ -lresolv all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list gurlchecker$(EXEEXT): $(gurlchecker_OBJECTS) $(gurlchecker_DEPENDENCIES) @rm -f gurlchecker$(EXEEXT) $(LINK) $(gurlchecker_OBJECTS) $(gurlchecker_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/application.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bookmarks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cookies.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html_parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lists.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/report.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/search.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tooltips.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ucclam.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uccroco.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uctidy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web_site.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gurlchecker-0.13.1/src/callbacks.h0000644000175000017500000000304611326610047013675 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_CALLBACK #define H_UC_CALLBACK #include "general.h" void on_urls_list_cursor_changed (GtkTreeView * selection, gpointer user_data); gboolean on_url_list_mouse_clicked (GtkWidget * widget, GdkEventButton * event, gpointer data); gboolean on_main_treeview_motion_notify_event (GtkWidget * widget, GdkEventButton * event, gpointer data); gboolean on_main_treeview_leave_notify_event (GtkWidget * widget, GdkEventCrossing * event, gpointer user_data); gboolean on_main_treeview_enter_notify_event (GtkWidget * widget, GdkEventCrossing * event, gpointer user_data); void on_search_list_cursor_changed (GtkTreeView * selection, gpointer user_data); #endif gurlchecker-0.13.1/src/search.c0000644000175000017500000003167711327414762013240 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #include "application.h" #include "utils.h" #include "lists.h" #include "search.h" #include "callbacks.h" #include "cache.h" static guint32 uc_search_result_count = 0; static gboolean uc_search_exit_value = FALSE; enum { SEARCH_UID_COLUMN, SEARCH_URL_COLUMN, SEARCH_N_COLUMNS }; static void uc_search_display_result (void); static void uc_search_pages_content (GList * list); static void uc_search_links_name (GList * list); static void uc_search_meta_content (GList * list); static gboolean uc_search_meta_content_lookup (GList * metas); static void uc_search_emails (GList * list); static gboolean uc_search_emails_lookup (GList * emails); static int uc_search_list_get_selected_row_id (GtkTreeView * list); static void uc_search_treeview_add_row (const UCLinkProperties * prop, const guint count); static gboolean uc_search_strstr (const gchar * buffer); void uc_search_set_exit (const gboolean val) { if ((uc_search_exit_value = val)) gtk_widget_hide (WGET ("search_dialog")); } gboolean uc_search_get_exit (void) { return uc_search_exit_value; } /* * reset the search properties */ void uc_search_free (void) { g_free (search_state.string), search_state.string = NULL; search_state.case_sensitive = FALSE; search_state.status_code = FALSE; search_state.pages_content = FALSE; search_state.links_name = FALSE; search_state.meta_content = FALSE; search_state.emails = FALSE; uc_search_result_count = 0; } /* * control the check button state */ void uc_search_check_verification (void) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_pages_content")))) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_links_name")), FALSE); WSENS ("nsd_search_links_name", FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_meta_content")), FALSE); WSENS ("nsd_search_meta_content", FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WGET ("nsd_search_emails")), FALSE); WSENS ("nsd_search_emails", FALSE); } else { WSENS ("nsd_search_status_code", TRUE); WSENS ("nsd_search_links_name", TRUE); WSENS ("nsd_search_meta_content", TRUE); WSENS ("nsd_search_emails", TRUE); } } /* * create and display the list for the search * result */ static void uc_search_display_result (void) { GtkCellRenderer *renderer; GtkTreeViewColumn *column = NULL; GtkWidget *scroll = NULL; scroll = WGET ("sd_search_scroll"); treestore_search = gtk_list_store_new (SEARCH_N_COLUMNS, G_TYPE_INT, G_TYPE_STRING); treeview_search = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (treestore_search))); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (treeview_search, -1, _("Id"), renderer, "text", SEARCH_UID_COLUMN, NULL); column = gtk_tree_view_get_column (treeview_search, SEARCH_UID_COLUMN); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_insert_column_with_attributes (treeview_search, -1, _("URL"), renderer, "text", SEARCH_URL_COLUMN, NULL); gtk_tree_view_set_rules_hint (treeview_search, TRUE); uc_utils_clear_container (GTK_CONTAINER (scroll)); gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (treeview_search)); gtk_widget_show_all (scroll); } /* * set the main url treeview cursor on the same item * than the treeview search */ void uc_search_main_select (GtkTreeView * selection) { UCLinkProperties *prop = NULL; GtkTreePath *path = NULL; gint32 id = 0; id = uc_search_list_get_selected_row_id (selection); if (id <= 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); path = gtk_tree_path_new_from_string (prop->treeview_path); gtk_tree_view_set_cursor (treeview, path, NULL, FALSE); gtk_tree_path_free (path), path = NULL; } /* * return the id of the current selected row in the result * list */ static int uc_search_list_get_selected_row_id (GtkTreeView * list) { GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreeSelection *select = NULL; gint32 ret = -1; if (uc_search_result_count == 0 || !(select = gtk_tree_view_get_selection (list))) return ret; uc_application_main_tree_display_all (); uc_application_main_tree_expand_all (); if (gtk_tree_selection_get_selected (select, &model, &iter)) gtk_tree_model_get (model, &iter, 0, &ret, -1); return ret; } /* FIXME * -> do a case insensitive search when requested... * * search the given string case or not case sensitive, * according to the user choice */ static gboolean uc_search_strstr (const gchar * buffer) { return (strstr (buffer, search_state.string) != NULL); } /* * search in pages content */ static void uc_search_pages_content (GList * list) { GList *item = NULL; gsize length = 0; item = g_list_first (list); while (item != NULL && !uc_search_get_exit ()) { UCLinkProperties *prop = (UCLinkProperties *) item->data; gchar *buffer = NULL; item = g_list_next (item); if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_search_pages_content (prop->childs); continue; } else if (!prop->is_parsable || prop->to_delete || (buffer = uc_cache_get_source (prop->uid, &length)) == NULL) continue; uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, prop->url); UC_UPDATE_UI; if (!uc_search_get_exit () && uc_search_strstr (buffer)) { uc_search_treeview_add_row (prop, uc_search_result_count); uc_search_result_count++; } g_free (buffer), buffer = NULL; if (prop->childs != NULL) uc_search_pages_content (prop->childs); } } /* * search in links name */ static void uc_search_links_name (GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL && !uc_search_get_exit ()) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_search_links_name (prop->childs); continue; } else if (prop->to_delete) continue; uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, prop->url); UC_UPDATE_UI; if (!uc_search_get_exit () && uc_search_strstr (prop->url)) { uc_search_treeview_add_row (prop, uc_search_result_count); uc_search_result_count++; } if (prop->childs != NULL) uc_search_links_name (prop->childs); } } /* * search a string in all metas of a page */ static gboolean uc_search_meta_content_lookup (GList * metas) { GList *item = NULL; item = g_list_first (metas); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; if (uc_search_strstr (tag->value)) return TRUE; item = g_list_next (item); } return FALSE; } /* * search in meta content */ static void uc_search_meta_content (GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL && !uc_search_get_exit ()) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_search_pages_content (prop->childs); continue; } else if (prop->to_delete) continue; uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, prop->url); UC_UPDATE_UI; if (!uc_search_get_exit () && uc_search_meta_content_lookup (prop->metas)) { uc_search_treeview_add_row (prop, uc_search_result_count); uc_search_result_count++; } if (prop->childs != NULL) uc_search_pages_content (prop->childs); } } /* * search a string in all emails of a page */ static gboolean uc_search_emails_lookup (GList * emails) { GList *item = NULL; item = g_list_first (emails); while (item != NULL) { UCHTMLTag *email = (UCHTMLTag *) item->data; item = g_list_next (item); if (uc_search_strstr (email->value)) return TRUE; } return FALSE; } /* * search in emails */ static void uc_search_emails (GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL && !uc_search_get_exit ()) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_search_emails (prop->childs); continue; } else if (prop->to_delete) continue; uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, prop->url); UC_UPDATE_UI; if (!uc_search_get_exit () && uc_search_emails_lookup (prop->emails)) { uc_search_treeview_add_row (prop, uc_search_result_count); uc_search_result_count++; } if (prop->childs != NULL) uc_search_emails (prop->childs); } } /* * search in status code */ static void uc_search_status_codes (GList * list) { GList *item = NULL; item = g_list_first (list); while (item != NULL && !uc_search_get_exit ()) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER) { if (prop->childs != NULL) uc_search_status_codes (prop->childs); continue; } else if (prop->to_delete) continue; uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, prop->url); UC_UPDATE_UI; if (!uc_search_get_exit () && uc_search_strstr (g_hash_table_lookup (prop->header, UC_HEADER_STATUS))) { uc_search_treeview_add_row (prop, uc_search_result_count); uc_search_result_count++; } if (prop->childs != NULL) uc_search_status_codes (prop->childs); } } static void uc_search_treeview_add_row (const UCLinkProperties * prop, const guint count) { gchar *strpath = NULL; GtkTreeIter iter; gtk_list_store_append (treestore_search, &iter); gtk_list_store_set (treestore_search, &iter, SEARCH_UID_COLUMN, prop->uid, SEARCH_URL_COLUMN, prop->url, -1); gtk_list_store_move_before (treestore_search, &iter, NULL); /* to always view the last inserted item in the list */ strpath = g_strdup_printf ("%u", count); if (!uc_search_get_exit ()) gtk_tree_view_set_cursor (treeview_search, gtk_tree_path_new_from_string (strpath), NULL, TRUE); g_free (strpath), strpath = NULL; UC_UPDATE_UI; } /* * launch the search */ void uc_search_begin (void) { gchar *text = NULL; uc_search_result_count = 0; uc_search_set_exit (FALSE); uc_application_search_dialog_show (); WSENS ("mwm_find", FALSE); WSENS ("mwm_project", FALSE); WSENS ("mw_bt_new", FALSE); WSENS ("mw_bt_open", FALSE); uc_search_display_result (); if (search_state.status_code) uc_search_status_codes (uc_lists_checked_links_get ()); else if (search_state.links_name) uc_search_links_name (uc_lists_checked_links_get ()); else if (search_state.meta_content) uc_search_meta_content (uc_lists_checked_links_get ()); else if (search_state.emails) uc_search_emails (uc_lists_checked_links_get ()); /* the default choice is search_state.pages_content */ else uc_search_pages_content (uc_lists_checked_links_get ()); if (uc_search_get_exit ()) return; text = g_strdup_printf (_("%u item(s) found"), uc_search_result_count); uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_FIRST, text); uc_application_display_search_message (UC_CHECK_MESSAGE_LABEL_SECOND, ""); g_free (text), text = NULL; gtk_window_set_title (GTK_WINDOW (WGET ("search_dialog")), _("Search ended")); g_signal_connect (G_OBJECT (treeview_search), "cursor_changed", G_CALLBACK (on_search_list_cursor_changed), NULL); g_signal_connect (G_OBJECT (treeview_search), "button_press_event", G_CALLBACK (on_url_list_mouse_clicked), NULL); g_signal_connect (G_OBJECT (treeview_search), "button_release_event", G_CALLBACK (on_url_list_mouse_clicked), NULL); uc_utils_set_userfriendly_treeview_column (treeview_search, SEARCH_URL_COLUMN); } gurlchecker-0.13.1/src/connection.c0000644000175000017500000005134711345761732014130 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "check.h" #include "project.h" #include "connection.h" /** * UCTcpState: * @UC_TCP_STATE_CONNECTING: We are not yet connected. * @UC_TCP_STATE_CONNECTED: We are connected. * @UC_TCP_STATE_CLOSED: Connection has been closed. * * The different states of a #UCConn object. * */ typedef enum _UCTcpState UCTcpState; enum _UCTcpState { UC_TCP_STATE_CONNECTING, UC_TCP_STATE_CONNECTED, UC_TCP_STATE_CLOSED }; /** * UCHTTPStatus: * @UC_HTTP_STATUS_UNKNOWN: Not defined. * @UC_HTTP_STATUS_OK: Host was conntacted without problem. * @UC_TCP_STATUS_TIMEOUT: A timeout occured while connecting. * @UC_HTTP_STATUS_BAD_HOSTNAME: Bad hostname (can not resolve). * @UC_HTTP_STATUS_CONNECTION_REFUSED: Connection refused by remote. * @UC_TCP_STATUS_ERROR: A error occured. * * The different status of a HTTP link * */ typedef enum _UCTcpStatus UCTcpStatus; enum _UCTcpStatus { UC_TCP_STATUS_UNKNOWN, UC_TCP_STATUS_OK, UC_TCP_STATUS_TIMEOUT, UC_TCP_STATUS_BAD_HOSTNAME, UC_TCP_STATUS_CONNECTION_REFUSED, UC_TCP_STATUS_ERROR }; /** * UCConn: * @socket: The socket descriptor. * @thread_id: current thread. * @thread_end: %TRUE when the main thread is not yet running. * @thread_ftp_end: %TRUE when the FTP thread is not yet running. * @header_request: %TRUE when only header is needed. * @timeout: %TRUE if a timeout occured while retreiving/sending data. * @tcp_state: A #UCTcpState value to describe the connection state. * @tcp_status: A #UCTcpState value to describe the connection status. * @hostname: Name of the host. * @port: Port of the host. * @array: This array is used for saving server response. * @request: The request to send to the server. * @session_gnutls: GNU TLS session. * @use_gnutls: %TRUE if the protocol require GNU TLS (HTTPS). * @use_ftp: %TRUE if the protocol is FTP. * @ftp_passive: %TRUE if we are reading a FTP response. * @ftp_passive_socket: Socket to use if we are managing FTP response. * @ftp_passive_port: Port to use to read FTP response. * * Here we store connection informations. */ typedef struct _UCConn UCConn; struct _UCConn { gint socket; pthread_t thread_id; gboolean thread_end; gboolean thread_ftp_end; gboolean timeout; gboolean header_request; UCTcpState tcp_state; UCTcpStatus tcp_status; gchar *hostname; gchar **ip_addr; guint port; GArray *array; gchar *request; #ifdef ENABLE_GNUTLS gnutls_session session_gnutls; gboolean use_gnutls; #endif gboolean use_ftp; gboolean ftp_passive; gint ftp_passive_socket; guint ftp_passive_port; }; #define UC_THREAD_WAIT(name, value) \ while ( \ !uc_check_cancel_get_value () && \ !uc_check_ignore_item_get_value () && \ name == value) \ { \ UC_UPDATE_UI; \ g_usleep (500); \ } #define UC_CHECK_CANCELED \ ( \ uc_check_cancel_get_value () || \ uc_check_ignore_item_get_value ()\ ) #ifdef ENABLE_GNUTLS static gnutls_certificate_client_credentials xcred_gnutls; #endif static void *connect_thread (void *data); static void *read_thread (void *data); static UCConn *uc_conn_new (const gchar * proto, gchar * host, guint port, gchar * buffer, gboolean header_request, gchar **ip); static void uc_conn_disconnect (UCConn * conn); static void uc_conn_free (UCConn **conn); static UCTcpStatus connect_nonblock (const gint soc, struct sockaddr *addr, socklen_t addrlen); static gboolean uc_conn_timeout_cb (gpointer data); /** * uc_conn_init: * * Initialize connections */ void uc_conn_init (void) { #ifdef ENABLE_GNUTLS gnutls_global_init (); gnutls_certificate_allocate_credentials (&xcred_gnutls); gnutls_certificate_set_x509_trust_file (xcred_gnutls, "ca.pem", GNUTLS_X509_FMT_PEM); #endif } /** * uc_conn_free: * @conn: #UCConn object to free * * Free a #UCConn structure. */ static void uc_conn_free (UCConn **conn) { uc_conn_disconnect (*conn); if ((*conn)->array != NULL) g_array_free ((*conn)->array, TRUE), (*conn)->array = NULL; if ((*conn)->hostname != NULL) g_free ((*conn)->hostname), (*conn)->hostname = NULL; g_free (*conn), *conn = NULL; } /** * uc_conn_new: * @proto: The protocol. * @host: The host. * @port: The port. * @buffer: The HTTP request. * @header_request: %TRUE if we need only to get the header * * Create a new #UCConn object. * * Returns: A #UCConn node. */ static UCConn * uc_conn_new (const gchar * proto, gchar * host, guint port, gchar * buffer, gboolean header_request, gchar **ip_addr) { UCConn *conn = NULL; conn = g_new0 (UCConn, 1); conn->thread_end = FALSE; conn->thread_ftp_end = FALSE; conn->header_request = header_request; conn->timeout = FALSE; conn->socket = 0; conn->port = port; conn->use_ftp = FALSE; conn->ftp_passive_socket = 0; conn->ftp_passive_port = 0; conn->ftp_passive = FALSE; conn->hostname = g_strdup (host); conn->tcp_status = UC_TCP_STATUS_UNKNOWN; conn->array = g_array_new (FALSE, TRUE, 1); conn->request = buffer; // To be fill during connection attempt conn->ip_addr = ip_addr; if (strcmp (proto, UC_PROTOCOL_FTP) == 0) { conn->use_ftp = TRUE; conn->port = atoi (UC_URL_DEFAULT_FTP_PORT); } #ifdef ENABLE_GNUTLS if (strcmp (proto, UC_PROTOCOL_HTTPS) == 0) { const gint cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 }; conn->use_gnutls = TRUE; conn->port = atoi (UC_URL_DEFAULT_SSL_PORT); gnutls_init (&conn->session_gnutls, GNUTLS_CLIENT); gnutls_set_default_priority (conn->session_gnutls); gnutls_certificate_type_set_priority (conn->session_gnutls, cert_type_priority); gnutls_credentials_set (conn->session_gnutls, GNUTLS_CRD_CERTIFICATE, xcred_gnutls); } else { conn->session_gnutls = NULL; conn->use_gnutls = FALSE; } #endif return conn; } /** * uc_conn_timeout_cb: * @data: a #UCConn oject. * * Called when a connection timeout occure. */ static gboolean uc_conn_timeout_cb (gpointer data) { ((UCConn *)data)->thread_end = TRUE; return FALSE; } /** * uc_conn_disconnect: * @conn: A #UCConn object. * * Reset all #UCConn stuff. */ static void uc_conn_disconnect (UCConn * conn) { pthread_cancel (conn->thread_id); #ifdef ENABLE_GNUTLS if (conn->use_gnutls) { gnutls_bye (conn->session_gnutls, GNUTLS_SHUT_RDWR); gnutls_deinit (conn->session_gnutls); conn->session_gnutls = NULL; } #endif if (conn->socket > 0) { shutdown (conn->socket, SHUT_RDWR); close (conn->socket), conn->socket = 0; } if (conn->ftp_passive_socket) { shutdown (conn->ftp_passive_socket, SHUT_RDWR); close (conn->ftp_passive_socket), conn->ftp_passive_socket = 0; } } /** * uc_server_get_response: * @proto: The protocol. * @host: The host. * @port: The port. * @buffer: The HTTP request to send. * @header_request: %TRUE if we need only to get the header * * Connect to a host:port, send a HTTP request and return the content * of the HTTP response. * * Returns: Content of the HTTP response. */ GArray * uc_server_get_response (const gchar * proto, gchar * host, const guint port, gchar * buffer, gboolean header_request, gchar **ip) { guint port_real = 0; gchar *host_real = NULL; UCConn *conn = NULL; GArray *array = NULL; guint timeout_id = 0; uc_check_ignore_item_set_value (FALSE); if (uc_check_cancel_get_value ()) return NULL; if (strlen (uc_project_get_proxy_host ()) > 0 && (g_ascii_strcasecmp (host, "localhost") != 0 && strstr (host, "127.0.0.") == NULL)) { host_real = uc_project_get_proxy_host (); port_real = uc_project_get_proxy_port (); } else { host_real = host; port_real = port; } // Connect conn = uc_conn_new (proto, host_real, port_real, buffer, header_request, ip); conn->thread_end = FALSE; pthread_create (&conn->thread_id, NULL, connect_thread, conn); pthread_detach (conn->thread_id); UC_THREAD_WAIT (conn->thread_end, FALSE); // Connection OK : send client request and read server response if (!UC_CHECK_CANCELED && conn->tcp_status == UC_TCP_STATUS_OK) { conn->thread_end = FALSE; pthread_create (&conn->thread_id, NULL, read_thread, conn); pthread_detach (conn->thread_id); timeout_id = g_timeout_add (uc_project_get_check_timeout () * 1000, uc_conn_timeout_cb, conn); UC_THREAD_WAIT (conn->thread_end, FALSE); if (timeout_id != 0) g_source_remove (timeout_id), timeout_id = 0; // Read OK : get fill array with the server response if (!UC_CHECK_CANCELED && conn->tcp_status == UC_TCP_STATUS_OK) { array = g_array_new (FALSE, TRUE, 1); g_array_append_vals (array, conn->array->data, conn->array->len); } } uc_conn_free (&conn); return array; } // FIXME rewrite all this function /** * read_thread: * @data: Pointer on a #UCConn structure. * * The thread used to read incomming data from a server. * * Returns: Always %NULL (this is a detacheable thread). */ static void * read_thread (void *data) { UCConn *conn = (UCConn *) data; gint nb_read = 0; gchar *tmp = NULL; gchar buffer[UC_BUFFER_LEN + 1]; #ifdef ENABLE_GNUTLS // HTTPS if (conn->use_gnutls) { gnutls_record_send (conn->session_gnutls, conn->request, strlen (conn->request)); while ((nb_read = gnutls_record_recv (conn->session_gnutls, buffer, UC_BUFFER_LEN)) > 0) { if (conn->header_request && (tmp = strstr (buffer, "\r\n\r\n"))) { *tmp = '\0'; g_array_append_vals (conn->array, buffer, strlen (buffer)); nb_read = 0; break; } g_array_append_vals (conn->array, buffer, nb_read); } conn->tcp_status = (nb_read == 0) ? UC_TCP_STATUS_OK : UC_TCP_STATUS_ERROR; goto handler_exit; } // FTP else if (conn->use_ftp) #else if (conn->use_ftp) #endif { guint temp[6]; gboolean have_data = FALSE; gchar r_user[] = "USER anonymous\r\n"; gchar r_pass[] = "PASS gurlchecker@gurlchecker.labs.libre-entreprise.org\r\n"; gchar r_pasv[] = "PASV\r\n"; gchar r_quit[] = "QUIT\r\n"; gchar *port = NULL; gchar *request = NULL; pthread_t thread; // Read banner while ((nb_read = read (conn->socket, buffer, UC_BUFFER_LEN)) > 0) { buffer[nb_read] = '\0'; if (strstr (buffer, "220 ")) break; } // Send USER command write (conn->socket, r_user, strlen (r_user)); // FIXME g_usleep (G_USEC_PER_SEC); nb_read = read (conn->socket, buffer, UC_BUFFER_LEN); // 230: User logged in, proceed if (uc_utils_ftp_code_search (buffer, "230", nb_read)) ; // 332: Need account for login else if (uc_utils_ftp_code_search (buffer, "332", nb_read)) { g_warning ("FTP: Need account for login (%s)", conn->hostname); goto handler_error; } // 331: User name okay, need password else if (uc_utils_ftp_code_search (buffer, "331", nb_read)) { // Send PASS command write (conn->socket, r_pass, strlen (r_pass)); while ((nb_read = read (conn->socket, buffer, UC_BUFFER_LEN)) > 0) { buffer[nb_read] = '\0'; if (strstr (buffer, "230 ")) break; else if (strstr (buffer, UC_STATUS_CODE_FTP_MAX_CLIENTS) != NULL) { g_array_append_vals (conn->array, UC_STATUS_CODE_FTP_MAX_CLIENTS, strlen (UC_STATUS_CODE_FTP_MAX_CLIENTS)); goto handler_exit; } } } else { g_warning ("ftp: problem while reading after USER command (%s)", conn->hostname); goto handler_error; } // We first test with CWD. if this is a directory and if it exist, // no need to request go further: it is ok request = g_strdup_printf ("CWD %s\n", conn->request); write (conn->socket, request, strlen (request)); // FIXME g_usleep (G_USEC_PER_SEC); g_free (request), request = NULL; nb_read = read (conn->socket, buffer, UC_BUFFER_LEN); if (uc_utils_ftp_code_search (buffer, "250", nb_read)) { g_array_append_vals (conn->array, UC_STATUS_CODE_FTP_OK, strlen (UC_STATUS_CODE_FTP_OK)); goto handler_exit; } // Send PASV command write (conn->socket, r_pasv, strlen (r_pasv)); // FIXME g_usleep (G_USEC_PER_SEC); nb_read = read (conn->socket, buffer, UC_BUFFER_LEN); buffer[nb_read] = '\0'; if (!uc_utils_ftp_code_search (buffer, "227", nb_read) || nb_read <= 4) { g_warning ("FTP: problem with passive mode (%s)", conn->hostname); goto handler_error; } buffer[nb_read - 3] = '\0'; if ((port = strchr (buffer, '(')) != NULL) port++; else { g_warning ("FTP: problem reading passive mode line (%s)", conn->hostname); goto handler_error; } if (sscanf (port, "%u,%u,%u,%u,%u,%u", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]) != 6) { g_warning ("FTP: problem building passive port (%s)", conn->hostname); goto handler_error; } request = g_strdup_printf ("LIST %s\n", conn->request); write (conn->socket, request, strlen (request)); g_free (request), request = NULL; // FTP passive connection conn->ftp_passive_port = (temp[4] * 256) + temp[5]; conn->ftp_passive = TRUE; conn->thread_ftp_end = FALSE; pthread_create (&thread, NULL, connect_thread, conn); pthread_detach (thread); UC_THREAD_WAIT (conn->thread_ftp_end, FALSE); pthread_cancel (thread); conn->thread_ftp_end = FALSE; conn->ftp_passive = FALSE; if (conn->tcp_status != UC_TCP_STATUS_OK) { g_warning ("FTP: problem while connecting on passive port (%s)", conn->hostname); goto handler_error; } else { gchar *state = NULL; while ((nb_read = read (conn->ftp_passive_socket, buffer, UC_BUFFER_LEN)) > 0) have_data = TRUE; shutdown (conn->ftp_passive_socket, SHUT_RDWR); pthread_cancel (thread); close (conn->ftp_passive_socket); state = (have_data) ? UC_STATUS_CODE_FTP_OK : UC_STATUS_CODE_FTP_OK; g_array_append_vals (conn->array, state, strlen (state)); // Send QUIT command write (conn->socket, r_quit, strlen (r_quit)); } goto handler_exit; } // HTTP else if (conn->socket > 0) { write (conn->socket, conn->request, strlen (conn->request)); while (!tmp && (nb_read = read (conn->socket, buffer, UC_BUFFER_LEN)) > 0) { if (conn->header_request) { gchar b = buffer[nb_read]; buffer[nb_read] = '\0'; if ((tmp = strstr (buffer, "\r\n\r\n"))) { *tmp = '\0'; g_array_append_vals (conn->array, buffer, strlen (buffer)); nb_read = 0; } else buffer[nb_read] = b; } if (nb_read > 0) g_array_append_vals (conn->array, buffer, nb_read); } conn->tcp_status = (nb_read == 0) ? UC_TCP_STATUS_OK : UC_TCP_STATUS_ERROR; goto handler_exit; } handler_error: conn->tcp_status = UC_TCP_STATUS_ERROR; handler_exit: conn->thread_end = TRUE; pthread_exit (NULL); } /** * connect_nonblock: * @soc: Socket to connect. * @addr: #sockaddr_in structure with socket's informations. * * Do a non-blocking connect. * * Returns: #UCTcpStatus of the operation. */ static UCTcpStatus connect_nonblock (const gint soc, struct sockaddr *addr, socklen_t addrlen) { gint res; glong arg; fd_set myset; struct timeval tv; gint valopt; socklen_t lon; if ((arg = fcntl (soc, F_GETFL, NULL)) < 0) { /* g_warning ("Error fcntl(..., F_GETFL) (%s)\n", strerror (errno)); */ return UC_TCP_STATUS_ERROR; } arg |= O_NONBLOCK; if (fcntl (soc, F_SETFL, arg) < 0) { /* g_warning ("Error fcntl(..., F_SETFL) (%s)\n", strerror (errno)); */ return UC_TCP_STATUS_ERROR; } res = connect (soc, addr, addrlen); if (res < 0) { if (errno == EINPROGRESS) { do { tv.tv_sec = uc_project_get_check_timeout (); tv.tv_usec = 0; FD_ZERO (&myset); FD_SET (soc, &myset); res = select (soc + 1, NULL, &myset, NULL, &tv); if (res < 0 && errno != EINTR) { /* g_warning ("Error connecting %d - %s\n", errno, strerror (errno)); */ return UC_TCP_STATUS_ERROR; } else if (res > 0) { lon = sizeof (int); if (getsockopt (soc, SOL_SOCKET, SO_ERROR, (void *) (&valopt), &lon) < 0) { /* g_warning ("Error in getsockopt() %d - %s\n", errno, strerror (errno)); */ return UC_TCP_STATUS_ERROR; } if (valopt) { /* g_warning ("Error in delayed connection() %d - %s\n", valopt, strerror (valopt)); */ return UC_TCP_STATUS_ERROR; } break; } else { /* g_warning ("Timeout in select() - Cancelling!\n"); */ return UC_TCP_STATUS_TIMEOUT; } } while (1); } else { /* g_warning ("Error connecting %d - %s\n", errno, strerror (errno)); */ return UC_TCP_STATUS_ERROR; } } if ((arg = fcntl (soc, F_GETFL, NULL)) < 0) { /* g_warning ("Error fcntl(..., F_GETFL) (%s)\n", strerror (errno)); */ return UC_TCP_STATUS_ERROR; } arg &= (~O_NONBLOCK); if (fcntl (soc, F_SETFL, arg) < 0) { /* g_warning ("Error fcntl(..., F_SETFL) (%s)\n", strerror (errno)); */ return UC_TCP_STATUS_ERROR; } return UC_TCP_STATUS_OK; } /** * connect_thread: * @data: a #UCConn object. * * The thread used to connect to a server. * * Returns: Always %NULL (this is a detacheable thread). */ static void * connect_thread (void *data) { UCConn *conn = (UCConn *) data; struct addrinfo hints; struct addrinfo *res = NULL; gint *sock = NULL; gchar *port = NULL; gint ret = 0; if (conn->ftp_passive) { sock = &conn->ftp_passive_socket; port = g_strdup_printf ("%u", conn->ftp_passive_port); } else { sock = &conn->socket; port = g_strdup_printf ("%u", conn->port); } // Free port at thread exit pthread_cleanup_push (g_free, port); memset (&hints, 0, sizeof (hints)); hints.ai_socktype = SOCK_STREAM; hints.ai_family = PF_UNSPEC; if ((ret = getaddrinfo (conn->hostname, port, &hints, &res)) != 0 || res == NULL) { /* FIXME conn->tcp_status = UC_TCP_STATUS_BAD_HOSTNAME; */ g_warning ("Problem with getaddrinfo(): %s:%s\n\t-> %s", conn->hostname, port, gai_strerror (ret)); conn->tcp_status = UC_TCP_STATUS_ERROR; } // TODO check all returned addresses for the hostname else if ((*sock = socket (res->ai_family, res->ai_socktype, res->ai_protocol)) >= 0) { // Get IP addr if caller is OK for that (header request only) if (conn->ip_addr) { struct sockaddr_in *sa = (struct sockaddr_in *) res->ai_addr; *conn->ip_addr = g_strdup (inet_ntoa (sa->sin_addr)); } // Free getaddrinfo result at thread exit pthread_cleanup_push ((void *) freeaddrinfo, res); /* connect socket */ if ((conn->tcp_status = connect_nonblock (*sock, res->ai_addr, res->ai_addrlen)) == UC_TCP_STATUS_OK) { #ifdef ENABLE_GNUTLS if (conn->use_gnutls) { gnutls_transport_set_ptr (conn->session_gnutls, (gnutls_transport_ptr_t) conn->socket); do ret = gnutls_handshake (conn->session_gnutls); while ((ret == GNUTLS_E_AGAIN) || (ret == GNUTLS_E_INTERRUPTED)); if (ret < 0) { g_warning ("Problem with SSL handshake: %s:%s", conn->hostname, port); gnutls_perror (ret); conn->tcp_status = UC_TCP_STATUS_ERROR; } } #endif } pthread_cleanup_pop (1); // freeaddrinfo (res) } pthread_cleanup_pop (1); // g_free (port) if (conn->ftp_passive) conn->thread_ftp_end = TRUE; else conn->thread_end = TRUE; pthread_exit (NULL); } gurlchecker-0.13.1/src/url.c0000644000175000017500000004064411330546174012564 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "project.h" #include "url.h" static gchar *uc_url_get_absolute (gchar * url); static gboolean uc_url_is_relative (const gchar * url); /** * uc_url_add_slash: * @url: a URL. * * Check if the given url @url end by a slash. if not, add it. * * Returns: a new allocated string ended by a slash. */ gchar * uc_url_add_slash (const gchar * url) { g_return_val_if_fail (url != NULL, g_strdup ("")); return (url[strlen (url) - 1] != '/') ? g_strconcat (url, "/", NULL) : g_strdup (url); } /** * uc_url_is_faked: * @prop: A #UCLinkProperties object. * @tag: A #UCHTMLTag. * * Check if the link is in fact a redirection or if it * has another location. * * Returns: %TRUE if URL has been modified. Tag struct is modified. */ gboolean uc_url_is_faked (UCLinkProperties * prop, UCHTMLTag * tag) { gchar *new_location = NULL; gboolean ret = FALSE; gboolean concat = FALSE; gchar *tmp = NULL; gchar *port = NULL; if (prop == NULL || prop->header == NULL) return ret; new_location = g_hash_table_lookup (prop->header, UC_LOCATION); if (new_location == NULL) new_location = g_hash_table_lookup (prop->header, UC_CONTENT_LOCATION); // If new_location is ok, go one, else continue to default if (new_location != NULL) { ret = TRUE; if (strcmp (prop->port, UC_URL_DEFAULT_SSL_PORT) == 0 || strcmp (prop->port, UC_URL_DEFAULT_PORT) == 0) port = g_strdup (""); else port = g_strconcat (":", prop->port, NULL); concat = (!(uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTP) || uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTPS) || *tag->value == '/')); g_free (tag->value), tag->value = NULL; if (*new_location == '/') tag->value = g_strconcat (prop->protocol, "://", prop->h_name, port, new_location, NULL); else { tmp = strrchr (prop->path, '/'); if (tmp != NULL) *(tmp + 1) = '\0'; if (!concat && *new_location != '/' && !uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTP) && !uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTPS)) concat = TRUE; if (concat) { tag->value = g_strconcat (prop->protocol, "://", prop->h_name, port, prop->path, ((*new_location != '/') && (prop->path[strlen (prop->path) - 1] != '/')) ? "/" : "", new_location, NULL); } else if (uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTP) || uc_utils_memcasecmp (new_location, UC_PROTOCOL_HTTPS)) tag->value = g_strdup (new_location); else tag->value = g_strconcat ("/", new_location, NULL); } g_free (port), port = NULL; uc_utils_debug ( " Real location: \"%s\" for the following link:\n", (tag->value)?tag->value:""); } return ret; } static gboolean uc_url_is_relative (const gchar * url) { const gchar *tmp = NULL; return (url != NULL && (tmp = strstr (url, "./")) != NULL && !g_ascii_isalpha (*(tmp - 1))); } /** * uc_url_get_absolute: * @url: A complete URI or just a path. * * If the given URI contain a relative path, rewrite it in * absolute. * * For example: * http://www.perl.com/first/second/third/../../.././index.html will become * http://www.perl.com/index.html * * Returns: The absolute path. A new allocated string. */ static gchar * uc_url_get_absolute (gchar * url) { gchar *p1 = NULL; gchar *p2 = NULL; gchar *p3 = NULL; gchar *begin = NULL; gchar *end = NULL; gchar *ret = NULL; gsize inc = 0; g_return_val_if_fail (url != NULL, g_strdup ("")); if (strstr (url, "./") == NULL) return g_strdup (url); // If it is a path, it must not begin with more than on slash while (url[1] && url[1] == '/') url++; if ((p2 = strstr (url, "../")) != NULL) { while (*p2 == '.' || *p2 == '/') --p2; ++p2; p1 = url; begin = uc_utils_strdup_delim (p1, p2); p1 = p2 + 1; p2 = &url[strlen (url)]; end = uc_utils_strdup_delim (p1, p2); p2 = begin; p1 = end; while (p2 && (p1 = strstr (p1, "./")) != NULL) { p1 += 2; if ((p2 = strrchr (begin, '/')) != NULL && *(p2 - 1) != '/') { if ((p2 - 2) && *(p2 - 2) == ':') p2 = NULL; else *p2 = '\0'; } else p2 = NULL; p3 = p1; } if (begin[strlen (begin)] == '/') begin[strlen (begin)] = '\0'; if (*p3 == '/') *p3 = '\0'; ret = g_strconcat (begin, "/", p3, NULL); g_free (begin), begin = NULL; g_free (end), end = NULL; } else ret = g_strdup (url); p1 = ret; while ((p1 = strstr ((gchar *) p1, "./")) != NULL && uc_url_is_relative (p1)) { if (*(p1 - 1) == '.') --p1, inc = 3; else inc = 2; g_memmove (p1, p1 + inc, &ret[strlen (ret)] - (p1 + inc)); ret[strlen (ret) - inc] = '\0'; } return ret; } /** * uc_url_normalize: * @current_host: The current host. * @current_path: The current path. * @url: The URI. * * Build a full URI from the given parameters. * * Returns: A full and normalized URI. A new allocated string. */ gchar * uc_url_normalize (const gchar * current_host, const gchar * current_path, gchar * url) { gchar *protocol = NULL; gchar *host = NULL; gchar *port = NULL; gchar *path = NULL; gchar *args = NULL; gchar *normalized_url = NULL; gchar *tmp = NULL; protocol = uc_url_get_protocol (url); if (strcmp (protocol, UC_PROTOCOL_FILE) == 0 || strcmp (protocol, UC_PROTOCOL_MAILTO) == 0) { g_free (protocol), protocol = NULL; return g_strdup (url); } if (uc_url_parse (current_host, current_path, url, &host, &port, &path, &args)) { if (path[strlen (path) - 1] == '/') path[strlen (path) - 1] = '\0'; if (strcmp (port, UC_URL_DEFAULT_SSL_PORT) == 0 || strcmp (port, UC_URL_DEFAULT_PORT) == 0) tmp = g_strdup (""); else tmp = g_strconcat (":", port, NULL); normalized_url = g_strconcat (protocol, "://", host, tmp, path, args, NULL); g_free (tmp), tmp = NULL; } else normalized_url = g_strdup (url); if (host || port || path || args) { g_free (host), host = NULL; g_free (port), port = NULL; g_free (path), path = NULL; g_free (args), args = NULL; } g_free (protocol), protocol = NULL; return normalized_url; } /** * uc_url_add_protocol: * @proto: The protocol to add. * @host: The host. * * Add the given protocol to the given url. * * Returns: The host plus the given protocole. A new allocated string. */ gchar * uc_url_add_protocol (const gchar * proto, const gchar * host) { return (strstr (host, "://") != NULL) ? g_strdup (host) : g_strconcat (proto, "://", host, NULL); } /** * uc_url_get_hostname: * @current_host: The current host. * @url: The URI. * * Get the hostname of a given url. If the url doesn't have host name, then * current_host is send. * * Returns: The hostname of a given URI. A new allocated string. */ gchar * uc_url_get_hostname (const gchar * current_host, const gchar * url) { const gchar *b = NULL; const gchar *e = NULL; gchar *ret = NULL; if (url == NULL || (b = strstr (url, "://")) == NULL) { if (current_host != NULL) ret = g_strdup (current_host); else if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE) ret = g_strdup (""); else ret = NULL; } else { b += 3; if ((e = strpbrk (b, ":/")) == NULL) ret = g_strdup (b); else ret = uc_utils_strdup_delim (b, e); } return ret; } /** * uc_url_parse: * @current_host: The current host. * @current_path: The current_path. * @rurl: The URI to parse. * @host: String to put the host. * @port: String to put the port. * @path: String to put the path. * @args: String to put the arguments. * * Parse a given url. * * Returns: %TRUE if it is ok. parameters %host, %port, %path and %args are * modified. */ gboolean uc_url_parse (const gchar * current_host, const gchar * current_path, gchar * rurl, gchar ** host, gchar ** port, gchar ** path, gchar ** args) { GURI *uri = NULL; const gchar *path_b = NULL; const gchar *path_e = NULL; const gchar *p = NULL; gchar *real_cpath = NULL; gchar *project_host = NULL; gchar *url = NULL; gsize url_len = 0; gboolean ret = TRUE; url = uc_utils_replace (rurl, "&", "&"); url_len = strlen (url); project_host = uc_project_get_current_host (); if (strcmp (url, "..") == 0 || (url_len > 3 && strcmp (&url[url_len - 3], "/..") == 0)) { gchar *tmp = NULL; tmp = g_strconcat (url, "/", NULL); g_free (url), url = NULL; url = tmp; } /* If this is jus a anchor (URL like "#section") */ if (*url == '#') { gchar *tmp = NULL; tmp = g_strconcat (current_path, url, NULL); g_free (url), url = NULL; url = tmp; } path_b = current_path; path_e = strrchr (current_path, '/'); /* If this is a URL like "http://hostname", without path */ if (((p = strstr (rurl, "://")) || (p = strstr (rurl, "://"))) && !strchr ((p + 3), '/')) real_cpath = g_strdup ("/"); /* If this is a URL with a path */ else if (path_e != NULL && path_b != path_e) real_cpath = uc_utils_strdup_delim (path_b, path_e + 1); else real_cpath = g_strdup ("/"); /* Get absolute path */ { gchar *tmp = NULL; tmp = uc_url_get_absolute (real_cpath); g_free (real_cpath), real_cpath = NULL; real_cpath = tmp; } /* Because it seems that there is a bug in gnet with latin1 characters, * so we can not use the "gnet_uri_escape" method to escape URLs) */ { gchar *tmp = NULL; if ((tmp = uc_utils_url_reencode_escapes (url)) != url) { g_free (url), url = NULL; url = tmp; } uri = gnet_uri_new (url); } if (uri != NULL) { gnet_uri_set_fragment (uri, NULL); if (uri->scheme == NULL) gnet_uri_set_scheme (uri, (!strcmp (uc_project_get_current_port (), UC_URL_DEFAULT_SSL_PORT)) ? UC_PROTOCOL_HTTPS : UC_PROTOCOL_HTTP); if (uri->hostname == NULL) gnet_uri_set_hostname (uri, current_host); if (uri->port == 0) gnet_uri_set_port (uri, (!g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_HTTP)) ? atoi (UC_URL_DEFAULT_PORT) : atoi (UC_URL_DEFAULT_SSL_PORT)); if (uri->path == NULL && !g_ascii_strcasecmp (uri->hostname, project_host)) gnet_uri_set_path (uri, real_cpath); else if (uri->path == NULL) gnet_uri_set_path (uri, "/"); //gnet_uri_unescape (uri); //gnet_uri_escape (uri); *host = g_strdup (uri->hostname); *port = g_strdup_printf ("%u", uri->port); *path = g_strdup (uri->path); if (uc_project_get_no_urls_args ()) *args = g_strdup (""); else *args = (uri->query) ? g_strconcat ("?", uri->query, NULL) : g_strdup (""); if (g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_MAILTO) != 0) { //gchar *tmp = NULL; if ((!strcmp (*port, UC_URL_DEFAULT_PORT) || !strcmp (*port, UC_URL_DEFAULT_SSL_PORT)) && !g_ascii_strcasecmp (*host, project_host)) { g_free (*port), *port = NULL; *port = g_strdup (uc_project_get_current_port ()); } if (**path != '/') { gchar *tmp = NULL; tmp = g_strconcat (real_cpath, uri->path, NULL); gnet_uri_set_path (uri, tmp); g_free (*path), *path = NULL; *path = tmp; } /* if there is relative path indications in the url * we should apply a special treatment*/ /* FIXME if ((tmp = strstr (*path, "./")) && !((gpointer) tmp != (gpointer) path && (*(tmp - 1) != '.' || *(tmp - 1) != '/'))) */ //if ((tmp = strstr (*path, "./")) && !g_ascii_isalpha (*(tmp - 1))) if (uc_url_is_relative (*path)) { gchar *relative_url = NULL; gchar *absolute_url = NULL; gnet_uri_unescape (uri); relative_url = gnet_uri_get_string (uri); absolute_url = uc_url_get_absolute (relative_url); g_free (relative_url), relative_url = NULL; uc_url_parse (current_host, real_cpath, absolute_url, &(*host), &(*port), &(*path), &(*args)); g_free (absolute_url), absolute_url = NULL; } } } else { ret = FALSE; *host = g_strdup (""); *port = g_strdup (""); *args = g_strdup (""); /* gnet_uri_* do yet not support file protocol, so we must handle * it here */ if (uc_utils_memcasecmp (url, "file://")) { *path = g_strdup (strstr (url, "://") + 3); ret = TRUE; } } if (*path == NULL) *path = g_strdup (""); g_free (url), url = NULL; g_free (real_cpath), real_cpath = NULL; gnet_uri_delete (uri), uri = NULL; return ret; } /** * uc_url_get_port: * @url: The URI. * * Get the port of a given url. * * Returns: The port of the given URI. A new allocated string. */ gchar * uc_url_get_port (const gchar * url) { gchar *p1 = NULL; gchar *p2 = NULL; gchar *ret = NULL; if ((p1 = strstr (url, "://")) == NULL) ret = g_strdup (UC_URL_DEFAULT_PORT); else { p1 += 3; if ((p2 = strchr (p1, ':')) == NULL) { if (g_ascii_strncasecmp (url, UC_PROTOCOL_HTTPS, strlen (UC_PROTOCOL_HTTPS)) == 0) ret = g_strdup (UC_URL_DEFAULT_SSL_PORT); else ret = g_strdup (UC_URL_DEFAULT_PORT); } else { ++p2; p1 = p2; while (isdigit ((gint) *p2)) ++p2; ret = uc_utils_strdup_delim (p1, p2); } } return ret; } /** * uc_url_get_protocol: * @url: The URI. * * Get the protocol of a given url. * * Returns: The protocole of the given URI. If not, a return a default * protocol: #UC_PROTOCOL_HTTP or #UC_PROTOCOL_HTTPS. * A new allocated string. */ gchar * uc_url_get_protocol (const gchar * url) { gchar **split = NULL; gchar *ret = NULL; // Search only for ":", and not "://" because we want also pseudo protocols // like "mailto:" if (strchr (url, ':') == NULL) { if (strcmp (uc_project_get_current_port (), UC_URL_DEFAULT_SSL_PORT) == 0) ret = g_strdup (UC_PROTOCOL_HTTPS); else ret = g_strdup (UC_PROTOCOL_HTTP); } else { split = g_strsplit (url, ":", 0); ret = g_utf8_strdown (split[0], -1); g_strfreev (split), split = NULL; } return ret; } /** * uc_url_extract_url_from_local_path: * @path: The path from which to extract URL. * * A little tricky: extract a URL from a path. The URL must be at the end of * the given path. * * Returns: The URL in a newly allocated string or %NULL. */ gchar * uc_url_extract_url_from_local_path (const gchar * path) { const gchar *begin = NULL; if ((begin = strstr (path, UC_PROTOCOL_HTTPS "://")) == NULL && (begin = strstr (path, UC_PROTOCOL_HTTP "://")) == NULL && (begin = strstr (path, UC_PROTOCOL_FTP "://")) == NULL) return NULL; return uc_utils_strdup_delim (begin, &path[strlen (path)]); } /** * uc_url_is_valid: * @url: The URI. * * Quikly (loosly) check the validity of a given url. * * Returns: %TRUE if the given URI is valid. */ gboolean uc_url_is_valid (const gchar * url) { GURI *uri = NULL; gchar *ip = NULL; gboolean ret = FALSE; uri = gnet_uri_new (url); if (uri->scheme != NULL && g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_FILE) == 0) ret = TRUE; else if (uri->hostname == NULL) ret = FALSE; else if (g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_HTTP) != 0 && g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_HTTPS) != 0 && g_ascii_strcasecmp (uri->scheme, UC_PROTOCOL_FTP) != 0) ret = FALSE; else if ((ret = ((ip = uc_utils_get_ip (uri->hostname)) != NULL))) g_free (ip), ip = NULL; gnet_uri_delete (uri); return ret; } gurlchecker-0.13.1/src/timeout.h0000644000175000017500000000205111275575426013455 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_TIMEOUTS #define H_UC_TIMEOUTS void uc_timeout_domains_init (void); void uc_timeout_domains_free (void); void uc_timeout_domains_register (const gchar * domain); gboolean uc_timeout_domains_is_blocked (const gchar * domain); #endif gurlchecker-0.13.1/src/project.h0000644000175000017500000002205511345763756013446 00000000000000/* * Copyright (C) 2002-2009 * Emmanuel Saracco * * 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. */ #ifndef H_UC_PROJECT #define H_UC_PROJECT #include "general.h" /* enum of project types */ typedef enum { UC_PROJECT_TYPE_WEB_SITE, UC_PROJECT_TYPE_LOCAL_FILE, UC_PROJECT_TYPE_BOOKMARKS, UC_PROJECT_TYPE_ALL, UC_PROJECT_TYPES_LEN } UCProjectType; typedef struct { guint32 id; gchar *location; gchar *title; gchar *description; time_t create; time_t update; UCProjectType type; } UCProjectProjects; GHashTable *uc_project_get_cookies (void); void uc_project_set_cookies (GHashTable * value); void uc_project_projects_list_load (void); gboolean uc_project_save_all (void); void uc_project_report_save (void); void uc_project_xml_load_settings (const UCProjectProjects * p); void uc_project_general_settings_save (void); void uc_project_save_index (void); void uc_project_delete (const gint32 id); gint32 uc_project_treeview_get_selected_row_id (void); GdkPixbuf *uc_project_get_type_icon (const UCProjectType project_type); gboolean uc_project_open (const gint32 id); void uc_project_display_informations (GtkTreeView * treeview); GList *uc_project_get_projects_list (void); gboolean uc_project_save_properties (void); gint uc_project_save (void); void uc_project_free (void); void uc_project_new (void); void uc_project_get_reject_directories (gchar *** items, guint * item_size); void uc_project_get_reject_domains (gchar *** items, guint * item_size); gchar *uc_project_get_reject_documents (void); gchar *uc_project_get_reject_images (void); gchar * uc_project_get_security_bad_extensions (void); gchar *uc_project_get_security_virii_extensions (void); gchar *uc_project_get_w3c_html_extensions (void); gchar *uc_project_get_w3c_css_extensions (void); void uc_project_set_reject_directories (const gchar * items); void uc_project_set_reject_documents (const gchar * items); void uc_project_set_reject_images (const gchar * items); void uc_project_set_security_bad_extensions (const gchar * items); void uc_project_set_security_virii_extensions (const gchar * items); void uc_project_set_w3c_html_extensions (const gchar * items); void uc_project_set_w3c_css_extensions (const gchar * items); void uc_project_set_reject_domains (const gchar * items); UCProjectType uc_project_get_type (void); gchar *uc_project_get_title (void); gchar *uc_project_get_description (void); gboolean uc_project_get_save_bookmarks (void); gboolean uc_project_get_save (void); G_CONST_RETURN gchar *uc_project_get_local_charset (void); gboolean uc_project_get_check_is_current (void); gboolean uc_project_get_check_is_bookmarks (void); gboolean uc_project_get_check_is_main (void); gchar *uc_project_get_url (void); guint uc_project_get_id (void); gboolean uc_project_get_speed_check (void); gchar *uc_project_get_bookmarks_file (void); UCBookmarksType uc_project_get_bookmarks_type (void); gchar *uc_project_get_report_export_path (void); guint uc_project_get_timeouts_blocked (void); gchar *uc_project_get_current_host (void); gboolean uc_project_speed_check_get_download_content (void); gchar *uc_project_get_current_port (void); gchar *uc_project_get_proxy_host (void); gchar *uc_project_get_working_path (void); gchar *uc_project_get_chroot_path (void); gchar *uc_project_get_cache_name (void); gboolean uc_project_get_stylesheet_check (void); gboolean uc_project_get_stylesheet_validate (void); gboolean uc_project_get_proto_file_is_error (void); gboolean uc_project_get_proto_file_check (void); gboolean uc_project_get_cookies_accept (void); const gchar *uc_project_get_w3c_html_level (void); gboolean uc_project_get_proto_mailto (void); gboolean uc_project_get_proto_https (void); gboolean uc_project_get_proto_ftp (void); gboolean uc_project_get_passive_ftp (void); gboolean uc_project_get_proto_mailto_check_mx (void); gboolean uc_project_get_cookies_warn_added (void); gboolean uc_project_get_cookies_warn_updated (void); gboolean uc_project_get_cookies_warn_deleted (void); guint uc_project_get_check_wait (void); guint uc_project_get_depth_level (void); gboolean uc_project_get_check_chroot (void); gboolean uc_project_get_limit_local (void); gboolean uc_project_get_use_proxy (void); guint uc_project_get_proxy_port (void); gchar *uc_project_get_auth_line (void); gboolean uc_project_get_download_images_content (void); gboolean uc_project_get_no_urls_args (void); gboolean uc_project_get_download_archives_content (void); guint uc_project_get_check_timeout (void); gboolean uc_project_get_prompt_auth (void); gboolean uc_project_get_security_checks (const gchar * type); gboolean uc_project_get_w3c_checks (const gchar * type); gboolean uc_project_get_export_labels (void); gboolean uc_project_get_export_numbering (void); gboolean uc_project_get_export_external (void); gboolean uc_project_get_export_ip (void); gboolean uc_project_get_debug_mode (void); gboolean uc_project_get_dump_properties (void); guint uc_project_get_tooltips_delay (void); gboolean uc_project_get_save (void); gboolean uc_project_get_onsave (void); gchar *uc_project_get_browser_path (void); void uc_project_speed_check_set_download_content (const gboolean value); void uc_project_set_speed_check (const gboolean value); void uc_project_set_onsave (const gboolean value); void uc_project_set_type (const UCProjectType type); void uc_project_set_id (const guint id); void uc_project_set_title (const gchar * value); void uc_project_set_description (const gchar * value); void uc_project_set_save_bookmarks (const gboolean value); void uc_project_set_timeouts_blocked (const guint value); void uc_project_set_save (const gboolean value); void uc_project_set_local_charset (G_CONST_RETURN gchar * value); void uc_project_set_check_is_current (const gboolean value); void uc_project_set_check_is_main (const gboolean value); void uc_project_set_url (const gchar * value); void uc_project_set_bookmarks_file (const gchar * value); void uc_project_set_bookmarks_type (const UCBookmarksType value); void uc_project_set_report_export_path (const gchar * value); void uc_project_set_current_host (const gchar * value); void uc_project_set_current_port (const gchar * value); void uc_project_set_check_wait (const guint value); void uc_project_set_depth_level (const guint value); void uc_project_set_working_path (const gchar * value); void uc_project_set_cache_name (const gchar * value); void uc_project_set_proto_file_is_error (const gboolean value); void uc_project_set_stylesheet_check (const gboolean value); void uc_project_set_stylesheet_validate (const gboolean value); void uc_project_set_proto_file_check (const gboolean value); void uc_project_set_cookies_accept (const gboolean value); void uc_project_set_w3c_html_level (const gchar * value); void uc_project_set_proto_mailto (const gboolean value); void uc_project_set_proto_https (const gboolean value); void uc_project_set_proto_ftp (const gboolean value); void uc_project_set_passive_ftp (const gboolean value); void uc_project_set_proto_mailto_check_mx (const gboolean value); void uc_project_set_cookies_warn_added (const gboolean value); void uc_project_set_cookies_warn_updated (const gboolean value); void uc_project_set_cookies_warn_deleted (const gboolean value); void uc_project_set_check_chroot (const gboolean value); void uc_project_set_limit_local (const gboolean value); void uc_project_set_use_proxy (const gboolean value); void uc_project_set_proxy_host (const gchar * value); void uc_project_set_proxy_port (const guint value); void uc_project_set_auth_line (const gchar * value); void uc_project_set_chroot_path (const gchar * value); void uc_project_set_no_urls_args (const gboolean value); void uc_project_set_download_images_content (const gboolean value); void uc_project_set_download_archives_content (const gboolean value); void uc_project_set_check_timeout (const guint value); void uc_project_set_prompt_auth (const gboolean value); void uc_project_set_security_checks (const gchar * type, const gboolean value); void uc_project_set_w3c_checks (const gchar * type, const gboolean value); void uc_project_set_export_labels (const gboolean value); void uc_project_set_export_numbering (const gboolean value); void uc_project_set_export_external(const gboolean value); void uc_project_set_export_ip (const gboolean value); void uc_project_set_debug_mode (const gboolean value); void uc_project_set_dump_properties (const gboolean value); void uc_project_set_tooltips_delay (const guint value); void uc_project_set_browser_path (const gchar * value); #endif gurlchecker-0.13.1/src/utils.h0000644000175000017500000000736211332535136013125 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_UTILS #define H_UC_UTILS #include "general.h" gboolean uc_utils_str_is_not_alphanum (const gchar *str); void uc_utils_clear_container (GtkContainer * container); void uc_utils_swap_file_proto_option (const gboolean begin); time_t uc_utils_http_atotm (const gchar * time_string); gchar *uc_utils_url_reencode_escapes (const gchar * s); gboolean uc_utils_get_auth_fields (GladeXML * g, GtkWidget * w_auth_user, GtkWidget * w_auth_password, gchar ** auth_user, gchar ** auth_password, gchar ** auth_line); gchar *uc_utils_build_auth_line (const gchar * auth_user, const gchar * auth_password); gboolean uc_utils_ftp_code_search (const gchar * buffer, const gchar * code, const gint len); gchar *uc_utils_get_string_from_size (const gsize size); gchar *uc_utils_get_server_from_header_field (gchar * field); void uc_utils_copy (const gchar * src, const gchar * dest); gboolean uc_utils_get_meta_refresh_location (UCLinkProperties * prop, UCHTMLTag * tag); gchar *uc_utils_to_utf8 (const gchar * data); void uc_utils_copy_files (const gchar * src, const gchar * dest); void uc_utils_debug (const gchar * format, ...); void uc_utils_debug_dump_link_properties (const UCLinkProperties * prop); void uc_utils_set_userfriendly_treeview_column (const GtkTreeView * tv, const gint position); gchar *uc_utils_get_file_content (const gchar * path, gsize * length); void uc_utils_split_email (const gchar * email, gchar ** user, gchar ** domain); gchar *uc_utils_get_mx (const gchar * domain); gboolean uc_utils_get_yesno (const gchar * yesno); gboolean uc_utils_mx_is_valid (const gchar * mx); gchar *uc_utils_get_ip (const gchar * host); UCEmailStatus uc_utils_email_is_valid (const gchar * email, const gboolean check_mx); gchar *uc_utils_string_cut (const gchar * label, const gsize size); gchar *uc_utils_string_format4display (const gchar * label, const gsize size); gchar *uc_utils_replace (const gchar * str, const gchar * old, const gchar * new); gchar *uc_utils_replace1 (gchar * string, const gchar c1, const char c2); gchar *uc_utils_replacelr (gchar * string, const gchar c); gchar *uc_utils_convert_uid2file (const guint32 uid); void uc_utils_get_gnome_proxy_conf (gchar ** host, guint * port); gchar *uc_utils_clean_tag_link_value (gchar * value); gpointer uc_utils_search_string_next (gpointer buf, const gchar * str, const gchar limit_char); gboolean uc_utils_memcasecmp (const gchar * str1, const gchar * str2); void uc_utils_rmfiles (const gchar * path); gboolean uc_utils_mkdirs (const gchar * path, const gboolean create_all); void uc_utils_rmdirs (const gchar * path, const gboolean delete_all); guint32 uc_utils_vector_length (gpointer data); gchar *uc_utils_strpbrk_or_eos (const gchar * str, const gchar * accept); gchar *uc_utils_strdup_delim (const gchar * begin, const gchar * end); gboolean uc_utils_test_socket_open (const guint sock); gchar *uc_utils_get_gnome_browser_conf (void); #endif gurlchecker-0.13.1/src/main.c0000644000175000017500000000724111330021715012667 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "url.h" #include "application.h" static struct option long_options[] = { {"help", no_argument, NULL, 'h'}, {"version", no_argument, NULL, 'V'}, {"http-user", required_argument, NULL, 'u'}, {"http-passwd", required_argument, NULL, 'p'}, {"no-urls-args", required_argument, NULL, 'A'}, {NULL, 0, NULL, 0} }; static void uc_display_version (void); static void uc_display_help (void); int main (int argc, char *argv[]) { guint i = 0; guint uc_argc = 1; gchar *uc_argv[] = { PACKAGE, NULL }; gchar *url = NULL; gchar *auth_user = NULL; gchar *auth_password = NULL; gboolean no_urls_args = FALSE; #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif LIBXML_TEST_VERSION; xmlIndentTreeOutput = 1; xmlKeepBlanksDefault (0); g_thread_init (NULL); gnet_init (); gnome_program_init (PACKAGE, UC_VERSION, LIBGNOMEUI_MODULE, uc_argc, uc_argv, GNOME_PARAM_APP_DATADIR, PACKAGE_DATA_DIR, NULL); while ((i = getopt_long (argc, argv, "hu:p:VA", long_options, (gint32 *) 0)) != EOF) { switch (i) { case 'V': uc_display_version (); exit (0); case 'A': no_urls_args = TRUE;; break; case 'u': auth_user = optarg; break; case 'p': auth_password = optarg; break; default: uc_display_help (); exit (0); } } glade_gnome_init (); gconf_init (uc_argc, uc_argv, NULL); uc_application_globals_init (); /* check if there is a command line url * argument */ if (argc > 1) { gchar *tmp_url = NULL; tmp_url = uc_url_add_protocol (UC_PROTOCOL_HTTP, argv[argc - 1]); if (uc_url_is_valid (tmp_url)) url = tmp_url; else g_free (tmp_url), tmp_url = NULL; } uc_application_init (url, auth_user, auth_password, no_urls_args); g_free (url), url = NULL; GDK_THREADS_ENTER (); gtk_main (); GDK_THREADS_LEAVE (); return 0; } static void uc_display_version (void) { g_print (PACKAGE " " UC_VERSION "\n%s\n\nCopyright (C) 2002-2005 Emmanuel Saracco.\n" "%s\n", _ ("Wrote by Emmanuel Saracco ."), _("This is free software; see the source for copying conditions. " "There is NO warranty; not even for MERCHANTABILITY or FITNESS " "FOR A PARTICULAR PURPOSE.")); } static void uc_display_help (void) { g_print (_("Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n\n" "Report bugs to \n"), PACKAGE, PACKAGE); } gurlchecker-0.13.1/src/lists.h0000644000175000017500000000512411345265307013121 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_LISTS #define H_UC_LISTS #include "general.h" void uc_lists_html_tags_node_free (GList **list, UCHTMLTag **tag); void uc_lists_checked_links_dump (GList *list, FILE **fd, const UCExportFormat ftype); void uc_lists_refresh_preserved_links_reset (void); void uc_lists_refresh_preserved_links_append (UCLinkProperties * prop); GList *uc_lists_refresh_preserved_links_restore (GList * src); GList *uc_lists_links_first_minus_second (GList * first, GList * second); void uc_lists_similar_links_remove_item (GList * list, const gchar * url); void uc_lists_similar_links_remove_items (UCLinkProperties * prop); void uc_lists_already_checked_links_remove_branch_items (UCLinkProperties * prop); void uc_lists_already_checked_links_remove (const gchar * url); void uc_lists_already_checked_links_remove_items (UCLinkProperties * prop); void uc_lists_checked_links_node_replace (UCLinkProperties * old, UCLinkProperties * new); gpointer uc_lists_already_checked_links_lookup (const gchar * url, const gboolean return_node); gboolean uc_lists_already_checked_links_append (const gchar * url, gpointer ac_p); void uc_lists_already_checked_free (void); guint32 uc_lists_checked_links_is_empty (void); void uc_lists_checked_links_set (GList * list); GList *uc_lists_checked_links_get (void); void uc_lists_checked_links_node_free (GList **list, UCLinkProperties **prop); gpointer uc_lists_checked_links_lookup (const gchar * url); gboolean uc_lists_checked_links_exist (const gchar * url); UCLinkProperties *uc_lists_checked_links_lookup_by_uid (const guint32 uid); void uc_lists_checked_links_free (void); gboolean uc_lists_similar_links_exist (GList * list, const gchar * url); void uc_lists_similar_links_append (gpointer prop_p, const gchar *url); #endif gurlchecker-0.13.1/src/cookies.c0000644000175000017500000002064711327774257013432 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "project.h" #include "application.h" typedef struct _UCCookie UCCookie; struct _UCCookie { gchar *name; gchar *value; gchar *expires_a; time_t expires_tm; }; static void uc_cookies_free_callback (gpointer key, gpointer value, gpointer user_data); static GList *uc_cookies_value_get (const gchar * key); static void uc_cookies_get_value (const gchar * cookie, const gchar * name, gchar ** key, gchar ** value); static gboolean uc_cookies_value_get_cb (gpointer key, gpointer value, gpointer data); static void uc_cookies_free_callback (gpointer key, gpointer value, gpointer user_data) { GList *items = NULL; GList *list = (GList *) value; if (list == NULL) return; items = g_list_first (list); while (items != NULL) { UCCookie *c = (UCCookie *) items->data; items = g_list_next (items); g_free (c->name), c->name = NULL; g_free (c->value), c->value = NULL; g_free (c->expires_a), c->expires_a = NULL; g_free (c), c = NULL; } g_list_free (list), list = NULL; } void uc_cookies_free (void) { GHashTable *cookies = uc_project_get_cookies (); g_hash_table_foreach (cookies, uc_cookies_free_callback, NULL); g_hash_table_destroy (cookies), cookies = NULL; uc_project_set_cookies (cookies); } static gboolean uc_cookies_value_get_cb (gpointer key, gpointer value, gpointer data) { return (uc_utils_memcasecmp ((gchar *) data, (gchar *) key)); } static GList * uc_cookies_value_get (const gchar * key) { return g_hash_table_find (uc_project_get_cookies (), uc_cookies_value_get_cb, (gpointer) key); } gchar * uc_cookies_get_header_field (gchar * path) { GList *list = NULL; gchar *ret = NULL; time_t now = time (NULL); if ((list = uc_cookies_value_get (path))) { GList *item = NULL; GString *str = g_string_new ("Cookie:"); item = g_list_first (list); while (item != NULL) { UCCookie *c = (UCCookie *) item->data; if (c->expires_tm > 0 && c->expires_tm <= now) ; else g_string_append_printf (str, " %s=%s;", c->name, c->value); item = g_list_next (item); } if (strchr (str->str, '=') != NULL) { g_string_erase (str, str->len - 1, 1); g_string_append (str, "\r\n"); ret = str->str; g_string_free (str, FALSE); } else g_string_free (str, TRUE); } return (ret != NULL) ? ret : g_strdup (""); } /** * uc_cookies_get_value: * * * If @name is %NULL, we fill @key and @value. If @name is not %NULL we look * for @name and fill @value (@key is not filled) */ static void uc_cookies_get_value (const gchar * cookie, const gchar * name, gchar ** key, gchar ** value) { gchar **fields = NULL; gchar **name_value = NULL; guint i = 0; fields = g_strsplit (cookie, ";", 0); if (name == NULL) { g_strstrip (fields[0]); name_value = g_strsplit (fields[0], "=", 2); *key = g_strdup (name_value[0]); *value = g_strdup (name_value[1]); g_strfreev (name_value), name_value = NULL; } else { for (i = 0; fields[i] != NULL && *value == NULL; i++) { g_strstrip (fields[i]); name_value = g_strsplit (fields[i], "=", 2); if (name_value != NULL && name_value[0] != NULL && name_value[1] != NULL && strcasecmp (name_value[0], name) == 0) *value = g_strdup (name_value[1]); g_strfreev (name_value), name_value = NULL; } } g_strfreev (fields), fields = NULL; } void uc_cookies_add (const UCLinkProperties * prop, const gchar * cook) { gchar *key = NULL; gchar *value = NULL; gchar *expires = NULL; time_t expires_tm; time_t now = time (NULL); gchar *path = NULL; gchar *cookie = NULL; GList *list = NULL; GList *item = NULL; gboolean found = FALSE; gboolean bad_cookie = FALSE; GHashTable *cookies = uc_project_get_cookies (); // Add a default path "/" if there is no path specified if (strstr (cook, "ath=/") == NULL && strstr (cook, "ATH=/") == NULL) cookie = g_strconcat (cook, "; path=/", NULL); else cookie = g_strdup (cook); // Get path uc_cookies_get_value (cookie, "path", NULL, &path); // Get expiration uc_cookies_get_value (cookie, "expires", NULL, &expires); // Get cookie uc_cookies_get_value (cookie, NULL, &key, &value); if ((list = (GList *) g_hash_table_lookup (cookies, path))) { item = g_list_first (list); while (item != NULL && !found) { UCCookie *c = (UCCookie *) item->data; item = g_list_next (item); if (strcmp (c->name, key) == 0) { found = TRUE; // If value is empty, or cookie has expires if (strlen (value) == 0 || (expires && (uc_utils_http_atotm (expires) <= now))) { if (uc_project_get_cookies_warn_deleted () && !uc_application_cookie_warning_dialog_show ( prop->h_name, prop->path, _("The following cookie will be deleted"), &key, &value, &path, &expires, UC_COOKIES_ACTION_DELETE)) goto exit_refused; g_free (c->name), c->name = NULL; g_free (c->value), c->value = NULL; g_free (c->expires_a), c->expires_a = NULL; list = g_list_remove (list, (gpointer) c); g_free (c), c = NULL; g_hash_table_replace (cookies, g_strdup (path), list); goto exit_refused; } // Update cookie content else { if (uc_project_get_cookies_warn_updated () && !uc_application_cookie_warning_dialog_show ( prop->h_name, prop->path, _("The following cookie will be updated"), &key, &value, &path, &expires, UC_COOKIES_ACTION_UPDATE)) goto exit_refused; g_free (c->value), c->value = NULL; c->value = value; g_free (c->expires_a), c->expires_a = NULL; c->expires_tm = 0; if ((expires_tm = uc_utils_http_atotm (expires)) > 0) { c->expires_a = strdup (expires); c->expires_tm = expires_tm; } else if (expires) bad_cookie = TRUE; } } } } expires_tm = uc_utils_http_atotm (expires); // Add cookie if (!found && (!expires || (uc_utils_http_atotm (expires) > now))) { UCCookie *c = NULL; if (uc_project_get_cookies_warn_added () && !uc_application_cookie_warning_dialog_show (prop->h_name, prop->path, _("The following cookie will be added"), &key, &value, &path, &expires, UC_COOKIES_ACTION_ADD)) goto exit_refused; expires_tm = uc_utils_http_atotm (expires); // If user inputed a expired date if (expires && expires_tm <= now) { if (expires_tm < 0) bad_cookie = TRUE; goto exit_refused; } c = g_new0 (UCCookie, 1); c->name = key; c->value = value; c->expires_a = NULL; c->expires_tm = 0; if (expires_tm > 0) { c->expires_a = g_strdup (expires); c->expires_tm = expires_tm; } list = g_list_prepend (list, c); } // The cookie to add has already expired else if (!found && (expires && expires_tm <= now)) { if (expires_tm < 0) bad_cookie = TRUE; goto exit_refused; } // The cookie was updated, so key (cookie name) remain the same else g_free (key), key = NULL; g_hash_table_replace (cookies, path, list); goto exit_ok; exit_refused: g_free (key), key = NULL; g_free (value), value = NULL; g_free (path), path = NULL; exit_ok: g_free (expires), expires = NULL; g_free (cookie), cookie = NULL; uc_project_set_cookies (cookies); } gurlchecker-0.13.1/src/web_site.h0000644000175000017500000000231411327072412013553 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_WEB_SITE #define H_UC_WEB_SITE #include "general.h" GList *uc_web_site_get_links_real (UCLinkProperties * url, const gchar * host, const guint depth); void uc_web_site_refresh_parent (const guint id); void uc_web_site_refresh_all (void); void uc_web_site_refresh_branch (const gint32 id); void uc_web_site_refresh_link (const gint32 id); void uc_web_site_begin_check (void); #endif gurlchecker-0.13.1/src/check.c0000644000175000017500000022556411521535330013037 00000000000000/* * Copyright (C) 2002-2011 * Emmanuel Saracco * * 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. */ #include "report.h" #include "cache.h" #include "application.h" #include "connection.h" #include "lists.h" #include "html_parser.h" #include "project.h" #include "search.h" #include "url.h" #include "utils.h" #include "timeout.h" #include "ucclam.h" #include "uccroco.h" #include "uctidy.h" #include "cookies.h" #include "bookmarks.h" #include "check.h" #define UC_CHECK_WAIT_END_OTHER_CONDITIONS \ ( \ (uc_check_cancel_get_value ()) || \ (uc_check_ignore_item_get_value ()) \ ) /* * struct containing path for "type" * images */ typedef struct _UCLinkTypeIcon UCLinkTypeIcon; static struct _UCLinkTypeIcon { UCLinkType type; gchar *icon_file; } uc_check_link_type_icon[] = { {LINK_TYPE_HREF, UC_PIXMAPS_DIR "/link_type_href.png"}, {LINK_TYPE_HREF_SSL, UC_PIXMAPS_DIR "/link_type_href_ssl.png"}, {LINK_TYPE_HREF_FTP, UC_PIXMAPS_DIR "/link_type_href_ftp.png"}, {LINK_TYPE_FILE_HREF, UC_PIXMAPS_DIR "/link_type_href_local.png"}, {LINK_TYPE_FILE_IMAGE, UC_PIXMAPS_DIR "/link_type_image_local.png"}, {LINK_TYPE_EMAIL, UC_PIXMAPS_DIR "/link_type_mail.png"}, {LINK_TYPE_IMAGE, UC_PIXMAPS_DIR "/link_type_image.png"}, {LINK_TYPE_IMAGE_SSL, UC_PIXMAPS_DIR "/link_type_image_ssl.png"}, {LINK_TYPE_IMAGE_FTP, UC_PIXMAPS_DIR "/link_type_image_ftp.png"}, {LINK_TYPE_FRAME, UC_PIXMAPS_DIR "/link_type_frame.png"}, {LINK_TYPE_FRAME_SSL, UC_PIXMAPS_DIR "/link_type_frame_ssl.png"}, {LINK_TYPE_CSS, UC_PIXMAPS_DIR "/link_type_css.png"}, {LINK_TYPE_CSS_SSL, UC_PIXMAPS_DIR "/link_type_css_ssl.png"}, {LINK_TYPE_NONE, UC_PIXMAPS_DIR "/link_type_unknown.png"} }; /* struct to point on the current url or host elements * (for timeouts callback) */ static struct _UCCurrentItem { gchar *current_host; UCHTMLTag *tag; UCLinkProperties *parent; gchar *url; gboolean is_first; } currentItem; /* global variable to know if user want to refresh a link */ static gboolean uc_check_refresh_link_value = FALSE; /* unique id for a glist properties node */ static guint32 uc_check_node_uid = 1; /* if TRUE, wait until it is FALSE */ static gboolean uc_check_wait_value = FALSE; static gboolean uc_check_suspend_value = FALSE; /* if FALSE, abort the check */ static gboolean uc_check_cancel_value = FALSE; /* if FALSE, abort the check of current url*/ static gboolean uc_check_ignore_item_value = FALSE; static void uc_check_right_frames_reset (void); static gboolean uc_check_content_type_accepted (gchar * path, gchar * content_type); static gboolean uc_check_protocol_accepted (gchar * protocol); static gboolean uc_check_content_type_parsable (const gchar * content_type); static gboolean uc_check_content_type_downloadable (gchar * content_type); static gboolean uc_check_apply_filters (const UCLinkProperties * prop); static gboolean uc_check_domain_accepted (gchar * domain); static gboolean uc_check_directory_accepted (const gchar * directory); static gboolean uc_check_chroot_authorized (const gchar * host, const gchar * proto, const gchar * path); static gboolean uc_check_link_get_properties_proto_mailto (UCLinkProperties * prop); static UCHTTPCheckReturn uc_check_link_get_properties_proto_http (UCLinkProperties * prop, const gchar * url, const gchar * current_path, gchar * current_host, UCHTMLTag * tag, UCLinkProperties * old_prop); static gboolean uc_check_link_get_properties_proto_file (UCLinkProperties *prop, const gchar *url, const gchar *current_path, const gchar *current_host, const UCLinkType type); static gboolean uc_check_wait_callback (gpointer data); static gchar *uc_check_build_referer_field (void); static void uc_check_refresh_report_real (GList * list, guint32 * bad, guint32 * malformed, guint32 * good, guint32 * timeout, guint32 * ignore); static GHashTable *uc_check_url_build_header (const gchar * status_code); static gboolean uc_check_is_security_alert (const UCLinkProperties * prop); static GList *uc_check_get_bad_extensions (UCLinkProperties * prop); static gboolean uc_check_get_virii (UCLinkProperties * prop); static gboolean uc_check_content_type_virii (gchar * content_type); static gboolean uc_check_content_type_bad_extensions (const UCLinkType type); static UCLinkProperties *uc_check_link_already_checked (const gchar * url); static gboolean uc_check_get_w3c_html_validate (UCLinkProperties * prop); static gboolean uc_check_get_w3c_css_validate (UCLinkProperties * prop); static void uc_check_display_list_current_item (const UCLinkProperties *prop); gboolean uc_check_html_is_valid (const gchar * buffer) { gboolean ret = FALSE; #ifdef ENABLE_TIDY UCTidy *tidy; if ((tidy = uc_uctidy_new ())) { ret = (uc_uctidy_validate (tidy, buffer) == 0); uc_uctidy_free (&tidy); } #endif return ret; } /** * uc_check_run_w3c_checks: * @prop: Current node. * * Run all w3c checks on the given node. */ void uc_check_run_w3c_checks (UCLinkProperties * prop) { gchar *content_type = NULL; gchar *status = NULL; prop->w3c_valid = TRUE; status = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); if (status && !uc_check_status_is_email (status) && uc_check_status_is_good (status)) { content_type = g_hash_table_lookup (prop->header, UC_CONTENT_TYPE); /* HTML validation */ if (uc_check_content_type_w3c_accepted ("html", prop->path, content_type)) { if (uc_project_get_w3c_checks ("html")) prop->w3c_valid = uc_check_get_w3c_html_validate (prop); } /* CSS validation */ else if (uc_check_content_type_w3c_accepted ("css", prop->path, content_type)) { if (uc_project_get_w3c_checks ("css")) prop->w3c_valid = uc_check_get_w3c_css_validate (prop); } } } /** * uc_check_run_security_checks: * @prop: Current node. * * Run all security checks on the given node. */ void uc_check_run_security_checks (UCLinkProperties * prop) { // Bad file extensions test if (uc_project_get_security_checks ("bad_extensions")) { if (uc_check_content_type_bad_extensions (prop->link_type)) prop->bad_extensions = uc_check_get_bad_extensions (prop); } // Scan for virii (only if page content have been downloaded) if (!uc_project_get_speed_check () && uc_project_get_security_checks ("virii")) { if (uc_check_content_type_virii ( g_hash_table_lookup (prop->header, UC_CONTENT_TYPE))) prop->virii = uc_check_get_virii (prop); } } static gboolean uc_check_is_security_alert (const UCLinkProperties * prop) { return (prop->bad_extensions != NULL || prop->virii); } gboolean uc_check_is_w3c_alert (const UCLinkProperties * prop) { return (!prop->w3c_valid); } /** * uc_check_status_is_good: * @status: status code to test. * * Test a given status code to see if it come from * a good link. * * Returns: %TRUE if we consider that the given * status code is good. */ gboolean uc_check_status_is_good (const gchar * status) { if (!status) return FALSE; return (status[0] == '2' || (!strcmp (status, UC_STATUS_CODE_FTP_OK) || !strcmp (status, UC_STATUS_CODE_REDIRECTED) || !strcmp (status, UC_STATUS_CODE_REDIRECTED_SEE_OTHER) || !strcmp (status, UC_STATUS_CODE_MOVED_PERMANENTLY) || !strcmp (status, UC_STATUS_CODE_GOOD_EMAIL_LINK))); } /** * uc_check_status_is_bad: * @status: status code to test. * * Test a given status code to see if it come from * a bad link. * * Returns: %TRUE if we consider that the given * status code is bad. */ gboolean uc_check_status_is_bad (const gchar * status) { if (!status) return TRUE; return (status[0] != '2' && status[0] != '9' && status[0] != '8' && strcmp (status, UC_STATUS_CODE_REDIRECTED) && strcmp (status, UC_STATUS_CODE_REDIRECTED_SEE_OTHER) && strcmp (status, UC_STATUS_CODE_MOVED_PERMANENTLY) && strcmp (status, "503") && strcmp (status, UC_STATUS_CODE_TIMEOUT) && strcmp (status, UC_STATUS_CODE_GOOD_EMAIL_LINK) && strcmp (status, UC_STATUS_CODE_FTP_OK)); } /** * uc_check_status_is_timeout: * @status: status code to test. * * Test a given status code to see if it come from * a timedouted link. * * Returns: %TRUE if we consider that the given * status code is timeout. */ gboolean uc_check_status_is_timeout (const gchar * status) { if (!status) return TRUE; return ((status[0] == '9' || !strcmp (status, "503") || !strcmp (status, UC_STATUS_CODE_TIMEOUT)) && (strcmp (status, UC_STATUS_CODE_IGNORED_LINK) && strcmp (status, UC_STATUS_CODE_MALFORMED_LINK) && strcmp (status, UC_STATUS_CODE_FILE_PROTO_ERROR))); } /** * uc_check_status_is_email: * @status: status code to test. * * Test a given status code to see if it come from * a E-Mail link. * * Returns: %TRUE if the given status is the status * of a E-Mail link. */ gboolean uc_check_status_is_email (const gchar * status) { if (!status) return FALSE; return (!strcmp (status, UC_STATUS_CODE_BAD_EMAIL_LINK) || !strcmp (status, UC_STATUS_CODE_BAD_EMAIL_LINK_MX) || !strcmp (status, UC_STATUS_CODE_GOOD_EMAIL_LINK)); } /** * uc_check_status_is_ignored: * @status: status code to test. * * Test a given status code to see if it come from * a ignored link. * * Returns: %TRUE if the link has been ignored * by the user. */ gboolean uc_check_status_is_ignored (const gchar * status) { if (!status) return TRUE; return (!strcmp (status, UC_STATUS_CODE_IGNORED_LINK)); } /** * uc_check_status_is_malformed: * @status: status code to test. * * Test a given status code to see if it come from * a malformed link. * * Returns: %TRUE if the link is malformed. */ gboolean uc_check_status_is_malformed (const gchar * status) { if (!status) return TRUE; return (!strcmp (status, UC_STATUS_CODE_MALFORMED_LINK) || !strcmp (status, UC_STATUS_CODE_FILE_PROTO_ERROR)); } /** * uc_check_get_link_type_label: * @type: link type. * * Associate a label with a given link type. * * Returns: The label corresponding to the given link type. */ gchar * uc_check_get_link_type_label (const UCLinkType type) { switch (type) { case LINK_TYPE_HREF: return _("Hypertext Link"); case LINK_TYPE_FILE_HREF: return _("Local Hypertext Link"); case LINK_TYPE_FILE_IMAGE: return _("Local Image"); case LINK_TYPE_EMAIL: return _("E-Mail"); case LINK_TYPE_IMAGE: return _("Image"); case LINK_TYPE_FRAME: return _("Frame link"); case LINK_TYPE_CSS: return _("StyleSheet link"); default: return _("Unknown Type"); } } /** * uc_check_get_link_type_icon: * @link_type: link type. * @proto: protocol of the link. * * Associate a icon with a given link type. * * See: uc_check_get_link_type_for_icon(), * uc_check_get_link_type_icon_path() * * Returns: A #GdkPixbuf object corresponding to the given link type. */ GdkPixbuf * uc_check_get_link_type_icon (const UCLinkType link_type, const gchar * proto) { guint i = 0; UCLinkType lt = LINK_TYPE_NONE; gchar *type = uc_check_get_link_type_for_icon (proto); if (!strcmp (type, "ssl")) switch (link_type) { case LINK_TYPE_HREF: lt = LINK_TYPE_HREF_SSL; break; case LINK_TYPE_IMAGE: lt = LINK_TYPE_IMAGE_SSL; break; case LINK_TYPE_FRAME: lt = LINK_TYPE_FRAME_SSL; break; case LINK_TYPE_CSS: lt = LINK_TYPE_CSS_SSL; break; default: lt = link_type; } else if (!strcmp (type, "ftp")) switch (link_type) { case LINK_TYPE_HREF: lt = LINK_TYPE_HREF_FTP; break; case LINK_TYPE_IMAGE: lt = LINK_TYPE_IMAGE_FTP; break; default: lt = link_type; } else lt = link_type; for (i = 0; i < sizeof (uc_check_link_type_icon) / sizeof (UCLinkTypeIcon); i++) { if (uc_check_link_type_icon[i].type == lt) return gdk_pixbuf_new_from_file (uc_check_link_type_icon[i].icon_file, NULL); } return gdk_pixbuf_new_from_file (UC_PIXMAPS_DIR "/list_unknown.png", NULL); } /** * uc_check_get_link_type_for_icon: * @proto: protocol. * * Check if we are dealing with a SSL protocol (HTTPS) or * a FTP protocol. * * Returns: The protocol we are dealing with. */ gchar * uc_check_get_link_type_for_icon (const gchar * proto) { gchar *ret = NULL; if (!strcmp (proto, UC_PROTOCOL_HTTPS)) ret = "ssl"; else if (!strcmp (proto, UC_PROTOCOL_FTP)) ret = "ftp"; else ret = ""; return ret; } /** * uc_check_get_link_type_icon_path: * @link_type: link type. * @proto: protocol of the link. * * Associate a icon path with a given link type. * * See: uc_check_get_link_type_for_icon(), * uc_check_get_link_type_icon() * * Returns: The icon path corresponding to the given link type. */ gchar * uc_check_get_link_type_icon_path (const UCLinkType link_type, const gchar * proto) { guint i = 0; UCLinkType lt = LINK_TYPE_NONE; gchar *type = uc_check_get_link_type_for_icon (proto); if (!strcmp (type, "ssl")) switch (link_type) { case LINK_TYPE_HREF: lt = LINK_TYPE_HREF_SSL; break; case LINK_TYPE_IMAGE: lt = LINK_TYPE_IMAGE_SSL; break; case LINK_TYPE_FRAME: lt = LINK_TYPE_FRAME_SSL; break; case LINK_TYPE_CSS: lt = LINK_TYPE_CSS_SSL; break; default: lt = link_type; } else if (!strcmp (type, "ftp")) switch (link_type) { case LINK_TYPE_HREF: lt = LINK_TYPE_HREF_FTP; break; case LINK_TYPE_IMAGE: lt = LINK_TYPE_IMAGE_FTP; break; default: lt = link_type; } else lt = link_type; for (i = 0; i < sizeof (uc_check_link_type_icon) / sizeof (UCLinkTypeIcon); i++) { if (uc_check_link_type_icon[i].type == lt) return uc_check_link_type_icon[i].icon_file; } return UC_PIXMAPS_DIR "/list_unknown.png"; } static void uc_check_display_list_current_item (const UCLinkProperties * prop) { gchar *lm_date = NULL; gchar *label = NULL; gchar *value = NULL; GtkTreePath *treepath = NULL; GtkTreeIter c_iter; UCURLsUserActions *action = NULL; /* * we do not display meta links nor nodes to remove from * bookmarks */ if (prop->link_type == LINK_TYPE_META || prop->to_delete) return; // Do not display empty bookmarks folder if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER && prop->childs == NULL) return; lm_date = g_hash_table_lookup (prop->header, UC_LAST_MODIFIED); if (lm_date == NULL) lm_date = "-"; action = uc_application_get_urls_user_action (prop->user_action); label = uc_utils_string_format4display (prop->label, UC_LABEL_DISPLAY_MAX_LEN); value = uc_utils_string_format4display (prop->link_value, UC_LABEL_DISPLAY_MAX_LEN); gtk_tree_store_append (treestore, &c_iter, NULL); gtk_tree_store_set (treestore, &c_iter, UID_COLUMN, prop->uid, LINK_STATUS_ICON_COLUMN, prop->status_icon, LINK_ICON_COLUMN, prop->link_icon, SECURITY_ALERT_ICON_COLUMN, (uc_check_is_security_alert (prop))?security_alert_icon:empty_icon, W3C_ALERT_ICON_COLUMN, (uc_check_is_w3c_alert (prop))?w3c_alert_icon:empty_icon, ACTION_COLUMN, action->label, LABEL_COLUMN, label, URL_COLUMN, value, LM_COLUMN, lm_date, -1); gtk_tree_view_get_cursor (treeview, &treepath, NULL); if (treepath == NULL) treepath = gtk_tree_path_new_from_string ("0"); else gtk_tree_path_next (treepath); gtk_tree_view_set_cursor (GTK_TREE_VIEW (treeview), treepath, NULL, FALSE); gtk_tree_path_free (treepath), treepath = NULL; g_free (value), value = NULL; g_free (label), label = NULL; } /** * uc_check_display_list: * @list: #GList of the links to display. * @path: value to build tree view path. * @iter: A GtkTreeIter variable. * * Display recursively urls in the treeview. */ void uc_check_display_list (GList * list, gchar * path, GtkTreeIter iter) { UCLinkProperties *prop = NULL; UCURLsUserActions *action = NULL; GList *item = NULL; gchar *lm_date = NULL; gchar *label = NULL; gchar *value = NULL; guint32 pos = 0; GtkTreeIter c_iter; gboolean display = FALSE; gboolean display_all = UC_DISPLAY_STATUS_IS_NONE && UC_DISPLAY_TYPE_IS_NONE && UC_DISPLAY_PROTO_IS_NONE; if (!display_all) c_iter = iter; item = g_list_first (list); while (item != NULL) { prop = (UCLinkProperties *) item->data; item = g_list_next (item); // We do not display meta links nor nodes to remove from // bookmarks */ if (prop->link_type == LINK_TYPE_META || prop->to_delete) continue; // Do not display empty bookmarks folder if (prop->link_type == LINK_TYPE_BOOKMARK_FOLDER && prop->childs == NULL) continue; if (!display_all) { if (prop->path != NULL) { // Handle STATUS filters if (!UC_DISPLAY_STATUS_IS_NONE) { const gchar *status = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); display = status != NULL && ((UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_BADLINKS) && uc_check_status_is_bad (status)) || (UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_GOODLINKS) && uc_check_status_is_good (status)) || (UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_MALFORMEDLINKS) && uc_check_status_is_malformed (status)) || (UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_TIMEOUTS) && uc_check_status_is_timeout (status)) || (UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_SECURITY_ALERTS) && uc_check_is_security_alert (prop)) || (UC_DISPLAY_STATUS_IS (UC_DISPLAY_STATUS_W3C_ALERTS) && uc_check_is_w3c_alert (prop))); } // Handle TYPE filters else if (!UC_DISPLAY_TYPE_IS_NONE) { UCLinkType type = prop->link_type; display = ((UC_DISPLAY_TYPE_IS (UC_DISPLAY_TYPE_HREF) && type == LINK_TYPE_HREF) || (UC_DISPLAY_TYPE_IS (UC_DISPLAY_TYPE_IMAGE) && type == LINK_TYPE_IMAGE) || (UC_DISPLAY_TYPE_IS (UC_DISPLAY_TYPE_FRAME) && type == LINK_TYPE_FRAME) || (UC_DISPLAY_TYPE_IS (UC_DISPLAY_TYPE_EMAIL) && type == LINK_TYPE_EMAIL) || (UC_DISPLAY_TYPE_IS (UC_DISPLAY_TYPE_CSS) && type == LINK_TYPE_CSS)); } // Handle PROTOCOLS filters else if (!UC_DISPLAY_PROTO_IS_NONE) { const gchar *protocol = prop->protocol; display = ((UC_DISPLAY_PROTO_IS (UC_DISPLAY_PROTO_HTTP) && strcmp (protocol, UC_PROTOCOL_HTTP) == 0) || (UC_DISPLAY_PROTO_IS (UC_DISPLAY_PROTO_FILE) && strcmp (protocol, UC_PROTOCOL_FILE) == 0) || (UC_DISPLAY_PROTO_IS (UC_DISPLAY_PROTO_HTTPS) && strcmp (protocol, UC_PROTOCOL_HTTPS) == 0) || (UC_DISPLAY_PROTO_IS (UC_DISPLAY_PROTO_FTP) && strcmp (protocol, UC_PROTOCOL_FTP) == 0)); } } } else { display = TRUE; // Here we build the treeview path to automatically select // a row according to the search result selection g_free (prop->treeview_path), prop->treeview_path = NULL; prop->treeview_path = (prop->depth_level == 0) ? g_strdup_printf ("%u", pos) : g_strdup_printf ("%s:%u", path, pos); } if (display) { lm_date = g_hash_table_lookup (prop->header, UC_LAST_MODIFIED); if (lm_date == NULL) lm_date = "-"; action = uc_application_get_urls_user_action (prop->user_action); label = uc_utils_string_format4display (prop->label, UC_LABEL_DISPLAY_MAX_LEN); value = uc_utils_string_format4display (prop->link_value, UC_LABEL_DISPLAY_MAX_LEN); if (display_all) gtk_tree_store_append (treestore, &c_iter, (prop->depth_level) ? &prop->parent->iter : NULL); else gtk_tree_store_append (treestore, &c_iter, NULL); gtk_tree_store_set (treestore, &c_iter, UID_COLUMN, prop->uid, LINK_STATUS_ICON_COLUMN, prop->status_icon, LINK_ICON_COLUMN, prop->link_icon, SECURITY_ALERT_ICON_COLUMN, (uc_check_is_security_alert (prop))?security_alert_icon:empty_icon, W3C_ALERT_ICON_COLUMN, (uc_check_is_w3c_alert (prop))?w3c_alert_icon:empty_icon, ACTION_COLUMN, action->label, LABEL_COLUMN, label, URL_COLUMN, value, LM_COLUMN, lm_date, -1); g_free (value), value = NULL; g_free (label), label = NULL; if (display_all) prop->iter = c_iter; } if (prop->childs != NULL) uc_check_display_list (prop->childs, prop->treeview_path, c_iter); if (display_all) pos++; } } /** * uc_check_treeview_get_selected_row_id: * * Get the current selected row in the main tree view. * * Returns: The id of the current selected row in the url * treeview. */ gint uc_check_treeview_get_selected_row_id (void) { GtkTreeIter iter; GtkTreeModel *model = NULL; GtkTreeSelection *select = NULL; gint32 ret = -1; if (treeview != NULL && GTK_IS_TREE_VIEW (treeview) && !uc_lists_checked_links_is_empty ()) { select = gtk_tree_view_get_selection (treeview); if (select != NULL && gtk_tree_selection_get_selected (select, &model, &iter)) gtk_tree_model_get (model, &iter, 0, &ret, -1); } return ret; } /** * uc_check_url_get_content: * @prop: #UCLinkProperties node of a link. * @current_path: current path. * @current_port: current port. * @current_args: current arguments. * @current_host: current hostname. * * See: uc_check_url_get_header(), * uc_check_url_build_header(), * uc_server_get_response() * * Returns: The page content of a given link. */ gchar * uc_check_url_get_content (UCLinkProperties * prop, const gchar * current_path, const gchar * current_port, const gchar * current_args, gchar * current_host) { gchar *hostname = NULL; gchar *referer = NULL; gchar *request = NULL; gchar *cookies = NULL; GArray *response = NULL; gchar *path = NULL; gchar *ret = NULL; gboolean is_local = FALSE; uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Retrieving source...")); UC_UPDATE_UI; hostname = (strlen (prop->h_name) ? prop->h_name : current_host); is_local = !strcmp (prop->h_name, uc_project_get_current_host ()); referer = uc_check_build_referer_field (); cookies = (is_local && uc_project_get_cookies_accept ())? uc_cookies_get_header_field (prop->path) : g_strdup (""); /* build request */ request = (uc_project_get_use_proxy ())? g_strdup_printf ("GET %s://%s%s%s HTTP/1.0\r\n" "User-Agent: %s\r\n" "Host: %s\r\n" "%s" "%s" "Accept: */*\r\n\r\n", prop->protocol, hostname, prop->path, prop->args, UC_USER_AGENT, hostname, (uc_project_get_auth_line ())? uc_project_get_auth_line () : "", referer) : g_strdup_printf ("GET %s%s HTTP/1.0\r\n" "User-Agent: %s\r\n" "Host: %s\r\n" "%s" "%s" "%s" "Accept: */*\r\n\r\n", prop->path, prop->args, UC_USER_AGENT, hostname, (uc_project_get_auth_line ())? uc_project_get_auth_line () : "", cookies, referer); g_free (cookies), cookies = NULL; g_free (referer), referer = NULL; /* get HTTP response */ response = uc_server_get_response (prop->protocol, hostname, atoi (prop->port), request, FALSE, NULL); g_free (request), request = NULL; /* exit if no result */ if (response == NULL) return NULL; /* save content in cache */ if (response->data != NULL) { if (prop->is_downloadable) { FILE *fd; const gchar *begin = NULL; gchar *m = NULL; path = uc_utils_convert_uid2file (prop->uid); fd = fopen (path, "wb"); g_free (path), path = NULL; begin = m = g_malloc0 (response->len + 1); memcpy (m, response->data, response->len); begin += prop->header_size + 4; fwrite (begin, 1, response->len - prop->header_size - 4, fd); fclose (fd); ret = g_strdup (begin); g_free (m), m = NULL; } /* if no header length has been specify in HTTP header, * set it */ if (g_hash_table_lookup (prop->header, UC_CONTENT_LENGTH) == NULL) g_hash_table_replace (prop->header, g_strdup (UC_CONTENT_LENGTH), g_strdup_printf ("%u", response->len - prop->header_size)); } g_array_free (response, TRUE), response = NULL; /* return page content */ return ret; } /** * uc_check_url_build_header: * @status_code: status code to insert in the header to build. * * Build a HTTP header for some gURLChecker internals types. * * See: %UC_STATUS_CODE_IGNORED_LINK, * %UC_STATUS_CODE_MALFORMED_LINK, * %UC_STATUS_CODE_TIMEOUT * * Returns: A HTTP header in a #GHashTable. */ static GHashTable * uc_check_url_build_header (const gchar * status_code) { GHashTable *tmp = NULL; tmp = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); g_hash_table_replace (tmp, g_strdup (UC_HEADER_STATUS), g_strdup (status_code)); g_hash_table_replace (tmp, g_strdup (UC_CONTENT_TYPE), g_strdup (UC_CONTENT_TYPE_HTML)); return tmp; } /** * uc_check_suspend_continue: * * Wait until the check can be alive again. */ void uc_check_suspend_continue (void) { GtkWidget *widget = NULL; uc_check_suspend_value = (!uc_check_suspend_get_value ()); widget = WGET ("bt_suspend_progress_dialog"); if (uc_check_suspend_get_value ()) { WSENS ("bt_ignore_progress_dialog", FALSE); gtk_button_set_label (GTK_BUTTON (widget), _("Continue")); uc_application_progress_dialog_set_modal (FALSE); } else { WSENS ("bt_ignore_progress_dialog", TRUE); gtk_button_set_label (GTK_BUTTON (widget), _("Suspend")); uc_application_progress_dialog_set_modal (TRUE); } while (uc_check_suspend_get_value () && !uc_check_cancel_get_value ()) { UC_UPDATE_UI; g_usleep (500); } } /** * uc_check_url_get_header: * @prop: #UCLinkProperties node of a link. * * See: uc_check_url_get_content(), * uc_check_url_build_header(), * uc_server_get_response() * * Returns: The HTTP header of a link in a #GHashTable. */ GHashTable * uc_check_url_get_header (UCLinkProperties * prop) { GHashTable *header = NULL; gchar **lines = NULL; gchar *referer = NULL; gchar *cookies = NULL; gchar *request = NULL; GArray *array = NULL; gchar *response = NULL; gchar *uri = NULL; gchar str[UC_HEADER_STATUS_CODE_LEN + 1] = { 0 }; guint i = 0; gboolean is_local = FALSE; is_local = !strcmp (prop->h_name, uc_project_get_current_host ()); if (!strcmp (prop->protocol, UC_PROTOCOL_FTP)) { uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Checking file (FTP)...")); /* request = path */ request = g_strdup (prop->path); } else { if (prop->link_type == LINK_TYPES_SECURITY_TEST_BAD_EXTENSIONS) ; else uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Retrieving header...")); UC_UPDATE_UI; referer = uc_check_build_referer_field (); cookies = (is_local && uc_project_get_cookies_accept ())? uc_cookies_get_header_field (prop->path) : g_strdup (""); if (uc_project_get_use_proxy ()) uri = g_strdup_printf ("%s://%s%s%s", prop->protocol, prop->h_name, prop->path, prop->args); else uri = g_strdup_printf ("%s%s", prop->path, prop->args); /* build request */ request = g_strdup_printf ( "GET %s HTTP/1.0\r\n" "User-Agent: %s\r\n" "Host: %s\r\n" "%s" "%s" "%s" "Accept: */*\r\n\r\n", uri, UC_USER_AGENT, prop->h_name, (uc_project_get_auth_line ())?uc_project_get_auth_line ():"", cookies, referer); g_free (uri), uri = NULL; g_free (cookies), cookies = NULL; g_free (referer), referer = NULL; } /* get response */ array = uc_server_get_response (prop->protocol, prop->h_name, atoi (prop->port), request, TRUE, &prop->ip_addr); g_free (request), request = NULL; /* exit if no result */ if (array == NULL || array->data == NULL) { if (array) g_array_free (array, TRUE), array = NULL; return NULL; } response = g_new0 (gchar, array->len + 1); memcpy (response, array->data, array->len); response[array->len] = '\0'; /* create hash table for header fields */ header = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); if (!strcmp (prop->protocol, UC_PROTOCOL_FTP)) { g_hash_table_replace (header, g_strdup (UC_HEADER_STATUS), g_strdup (response)); g_hash_table_replace (header, g_strdup (UC_CONTENT_TYPE), g_strdup (UC_CONTENT_TYPE_FTP)); } else { /* get HTTP header code */ memcpy (&str, &response[UC_HEADER_STATUS_CODE_FIRST_POS], UC_HEADER_STATUS_CODE_LEN); g_hash_table_replace (header, g_strdup (UC_HEADER_STATUS), g_strdup (str)); /* fill header size */ prop->header_size = strlen (response); /* get HTTP header fields */ i = 0; lines = g_strsplit (response, "\r\n", 0); while (lines[i] != NULL && strchr (lines[i], '<') == NULL) { gchar **key_value = g_strsplit (lines[i], ":", 2); gchar *cookie_field = NULL; if (key_value[0] != NULL && key_value[1] != NULL) { g_strstrip (key_value[0]); g_strstrip (key_value[1]); /* Status header field has already been set */ if (strcasecmp (key_value[0], UC_HEADER_STATUS) != 0) { g_hash_table_replace (header, cookie_field = g_utf8_strdown (key_value[0], -1), g_strdup (key_value[1])); /* If this is cookie field, register the cookie */ if (is_local && !uc_check_cancel_get_value () && uc_project_get_cookies_accept () && !strcmp (cookie_field, UC_SET_COOKIE)) uc_cookies_add (prop, key_value[1]); } } g_strfreev (key_value), key_value = NULL; i++; } g_strfreev (lines), lines = NULL; } g_array_free (array, TRUE), array = NULL; g_free (response), response = NULL; return header; } /** * uc_check_link_already_checked: * @url: the url to check. * * Check if a given url already has been checked. * * See: uc_check_link_already_checked_with_insert(), * uc_check_register_link(), * uc_lists_already_checked_links_append() * * Returns: The #UCLinkProperties node of the url if it has been already * checked, or %NULL. */ static UCLinkProperties * uc_check_link_already_checked (const gchar * url) { return (UCLinkProperties *) uc_lists_checked_links_lookup (url); } /** * uc_check_link_already_checked_with_insert: * @prop: the #UCLinkPropertie node of the link to insert. * @url: the url to insert. * * Check if a given url already has been checked. If not, it insert it in * the already checked urls list. * * See: uc_check_link_already_checked-), * uc_check_register_link(), * uc_lists_already_checked_links_append() * * Returns: %TRUE if the given url was already been checked. */ gboolean uc_check_link_already_checked_with_insert (UCLinkProperties * prop, gchar * url) { UCLinkProperties *prop_tmp = NULL; gboolean already_checked = FALSE; prop_tmp = uc_check_link_already_checked (url); /* if we are checking bookmarks, do not check for already * checked links */ if (uc_project_get_check_is_bookmarks ()) return FALSE; already_checked = (prop_tmp != NULL); if (already_checked && !uc_lists_similar_links_exist (prop_tmp->similar_links_parents, prop->url)) uc_lists_similar_links_append ((gpointer) prop_tmp, prop->url); if (already_checked) { uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Item already checked...")); UC_UPDATE_UI; uc_utils_debug (" (already checked) %s\n", (url)?url:""); } return already_checked; } /** * uc_check_register_link: * @normalized_url: the url of the link. * @lp: the #UCLinkProperties of the link. * * Register a link in the checked urls list and update the check report. * * Returns: a %gpointer on the new item. */ gpointer uc_check_register_link (const gchar * normalized_url, UCLinkProperties * lp) { gchar *status = NULL; /* append link to the already checked temporary * list */ if (uc_lists_already_checked_links_append (normalized_url, (gpointer) lp)) if (uc_project_get_check_is_main ()) uc_check_display_list_current_item (lp); /* we do not register bookmark's folders */ if (lp->link_type != LINK_TYPE_BOOKMARK_FOLDER && !uc_check_refresh_link_get_value ()) { status = g_hash_table_lookup (lp->header, UC_HEADER_STATUS); /* timeouts */ if (uc_check_status_is_timeout (status)) uc_report_set_timedoutlinks (-1); /* good links */ else if (uc_check_status_is_good (status)) uc_report_set_goodlinks (-1); /* bad links */ else if (uc_check_status_is_bad (status)) uc_report_set_badlinks (-1); /* display debug informations if requested */ uc_utils_debug (" (%s) %s\n", (status)?status:"", (normalized_url)?normalized_url:""); } uc_utils_debug_dump_link_properties (lp); return (gpointer) lp; } /** * uc_check_mx_is_valid: * * Test if the MX of the selected E-Mail link is valid. * launch a popup to inform the user of its state */ void uc_check_mx_is_valid (void) { UCLinkProperties *prop = NULL; gchar *mx = NULL; gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id < 0) { uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); return; } prop = uc_lists_checked_links_lookup_by_uid (id); if (prop->domain != NULL && strlen (prop->domain) > 0) { gchar *msg = NULL; mx = uc_utils_get_mx (prop->domain); if (uc_utils_mx_is_valid (mx)) { msg = g_strdup_printf (_("MX host %s for this " "domain is alive and listen on " "port 25."), mx); uc_application_dialog_show (msg, GTK_MESSAGE_INFO); } else uc_application_dialog_show (_("MX host does not respond or " "the E-Mail's domain is not valid."), GTK_MESSAGE_WARNING); g_free (mx), mx = NULL; } else uc_application_dialog_show (_("The E-Mail's domain is not valid."), GTK_MESSAGE_WARNING); } /** * uc_check_directory_accepted: * @path: the url to check. * * Check if a given directory should be filtered or not. * * Returns: TRUE is there is no filter for the given directory. */ static gboolean uc_check_directory_accepted (const gchar * path) { gchar **items = NULL; gchar *tmp = NULL; guint size = 0; guint i = 0; gboolean found = FALSE; /* root can not be filtered */ if (!strcmp (path, "/")) return TRUE; tmp = (path[strlen (path) - 1] != '/') ? g_strconcat (path, "/", NULL) : g_strdup (path); uc_project_get_reject_directories (&items, &size); while (i < size && !(found = (strstr (tmp, items[i++]) != NULL))); g_free (tmp), tmp = NULL; return (!found); } /* * return TRUE is the domain there is no filter for * the given hostname */ static gboolean uc_check_domain_accepted (gchar * domain) { gchar **items = NULL; guint size = 0; guint i = 0; gchar *tmp = NULL; gboolean found = FALSE; /* checked host is not filtered */ if (!strcmp (uc_project_get_current_host (), domain)) return TRUE; /* extract the domain of the complete hostname */ tmp = (strchr (domain, '.') != strrchr (domain, '.')) ? strchr (domain, '.') + 1 : domain; uc_project_get_reject_domains (&items, &size); while (i < size && !(found = (!strcmp (tmp, items[i++])))); return (!found); } /* * return TRUE if the given path is the check has been * restricted to the project directory and its subdirectories and * if the given path is in the current or in the subdirectories */ static gboolean uc_check_chroot_authorized (const gchar * host, const gchar * proto, const gchar * path) { gboolean ret = TRUE; gboolean same_host = FALSE; gboolean same_path = FALSE; same_host = uc_utils_memcasecmp (host, uc_project_get_current_host ()); same_path = uc_utils_memcasecmp (path, uc_project_get_chroot_path ()); if (!uc_project_get_limit_local ()) { if (uc_project_get_check_chroot () && same_host) ret = same_path; } else if (uc_project_get_type () == UC_PROJECT_TYPE_LOCAL_FILE && strcmp (proto, UC_PROTOCOL_FILE) != 0) ret = FALSE; else if (!uc_project_get_check_chroot ()) ret = same_host; else ret = (same_host && same_path); return ret; } /* * check if the given url is ok with * the filters */ static gboolean uc_check_apply_filters (const UCLinkProperties * prop) { gchar *content_type = NULL; return (prop != NULL && prop->header != NULL && (!strcmp (prop->protocol, UC_PROTOCOL_MAILTO) || ((content_type = g_hash_table_lookup (prop->header, UC_CONTENT_TYPE)) != NULL && uc_check_content_type_accepted (prop->path, content_type))) && uc_check_directory_accepted (prop->url) && uc_check_domain_accepted (prop->h_name)); } /* * set it to TRUE if user is rescanning a link to refresh its * status */ void uc_check_refresh_link_set_value (const gboolean value) { uc_check_refresh_link_value = value; } /* * return TRUE if user is rescanning a link to refresh its * status */ gboolean uc_check_refresh_link_get_value (void) { return uc_check_refresh_link_value; } /* * set the cancel check flag. * this flag is tested during the check to know * if the check must aborting or continuing */ void uc_check_cancel_set_value (const gboolean value) { uc_check_cancel_value = value; } /* * return TRUE is the check is to suspend and * FALSE otherwise */ gboolean uc_check_suspend_get_value (void) { return uc_check_suspend_value; } /* * return TRUE is the check is to cancel and * FALSE otherwise */ gboolean uc_check_cancel_get_value (void) { return uc_check_cancel_value; } /* * return TRUE is the current item must be * ignored */ gboolean uc_check_ignore_item_get_value (void) { return uc_check_ignore_item_value; } /* * set ignore item value */ void uc_check_ignore_item_set_value (const gboolean value) { uc_check_ignore_item_value = value; } /* * reset all items in the right frames */ static void uc_check_right_frames_reset (void) { GtkWidget *w = NULL; w = WGET ("mw_label_informations_message"); if (w != NULL) gtk_label_set_text (GTK_LABEL (w), ""); w = WGET ("mw_text_informations"); if (w != NULL) gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (w)), "", -1); w = WGET ("mw_location"); if (w != NULL) gtk_entry_set_text (GTK_ENTRY (w), ""); w = WGET ("mw_referrer"); if (w != NULL) gtk_entry_set_text (GTK_ENTRY (w), ""); uc_check_report_reset (-1); } /* * this function must be called before * any check, to initialize some elements */ void uc_check_reset (void) { gchar *title = NULL; uc_application_set_status_bar (0, _("Cleaning...")); UC_UPDATE_UI; if (treestore != NULL) { g_object_unref (G_OBJECT (treestore)), treestore = NULL; treeview = NULL; } uc_lists_refresh_preserved_links_reset (); uc_timeout_domains_free (); uc_application_remove_paths (); uc_application_make_paths (); uc_lists_checked_links_free (); uc_lists_already_checked_free (); uc_search_free (); uc_check_right_frames_reset (); if (uc_project_get_check_is_bookmarks ()) uc_bookmarks_free (); uc_check_node_uid = 1; uc_refresh_page = FALSE; uc_check_suspend_value = FALSE; uc_project_set_save (FALSE); uc_check_cancel_set_value (FALSE); uc_check_ignore_item_set_value (FALSE); uc_application_set_status_bar (0, ""); title = g_strconcat ("gURLChecker ", UC_VERSION, NULL); gtk_window_set_title (GTK_WINDOW (WGET ("main_window")), title); g_free (title), title = NULL; } /* * return TRUE if the given content-type is parsable * (if it could contain links) */ static gboolean uc_check_content_type_parsable (const gchar * content_type) { return (content_type != NULL && (strstr (content_type, "htm") != NULL || strstr (content_type, "php") != NULL || strstr (content_type, "css") != NULL)); } /* * return TRUE if the given content-type is dowloadable */ static gboolean uc_check_content_type_downloadable (gchar * content_type) { return (content_type != NULL && ((uc_project_get_download_images_content () && strstr (content_type, "image") != NULL) || (!uc_check_content_type_parsable (content_type) && (uc_project_get_download_archives_content () || ((uc_project_get_security_checks ("any") && uc_project_get_security_checks ("virii")) && uc_check_content_type_virii (content_type)))))); } /* * return TRUE if the given content-type is authorized * to be checked. * At first we rely on the extension. If it there is no extension, then * look at the mime type. */ static gboolean uc_check_content_type_accepted (gchar * path, gchar * content_type) { gboolean accepted = TRUE; gchar *src = NULL; gchar *dest_doc = NULL; gchar *dest_img = NULL; gchar *p = NULL; if (path == NULL && content_type == NULL) return FALSE; // Guess extension if ((src = strrchr (path, '.')) == NULL) { if (content_type && ((src = strrchr (content_type, '/')) != NULL)) { if ((p = strchr (src, ';'))) *p = '\0'; } else return FALSE; } ++src; // Prepare strings to be compared // Hacky, but simple src = g_strdup_printf (",%s,", src); dest_doc = g_strdup_printf (",%s,", uc_project_get_reject_documents ()); dest_img = g_strdup_printf (",%s,", uc_project_get_reject_images ()); accepted = (strstr (dest_doc, src) == NULL && strstr (dest_img, src) == NULL); g_free (src), src = NULL; g_free (dest_doc), dest_doc = NULL; g_free (dest_img), dest_img = NULL; return accepted; } static gboolean uc_check_content_type_bad_extensions (const UCLinkType type) { return (type != LINK_TYPE_EMAIL && type != LINK_TYPE_IMAGE_FTP && type != LINK_TYPE_HREF_FTP && !(uc_project_get_security_checks ("exclude_images") && (type == LINK_TYPE_IMAGE || type == LINK_TYPE_FILE_IMAGE || type == LINK_TYPE_IMAGE_SSL))); } static gboolean uc_check_content_type_virii (gchar * content_type) { gboolean accepted = TRUE; gchar *src = content_type; gchar *dest = NULL; gchar *p = NULL; if (content_type == NULL) return FALSE; // Guess extension if (src && ((p = strchr (content_type, '/')) != NULL)) *p = '\0'; else return FALSE; // Prepare strings to be compared // Hacky, but simple src = g_strdup_printf (",%s,", src); dest = g_strdup_printf (",%s,", uc_project_get_security_virii_extensions ()); accepted = (strstr (dest, src) != NULL); g_free (src), src = NULL; g_free (dest), dest = NULL; return accepted; } gboolean uc_check_content_type_w3c_accepted (const gchar * type, gchar * path, gchar * content_type) { gboolean accepted = TRUE; gchar *src = NULL; gchar *dest = NULL; gchar *p = NULL; if (path == NULL && content_type == NULL) return FALSE; // Guess extension if ((src = strrchr (path, '.')) == NULL) { if (content_type && ((src = strrchr (content_type, '/')) != NULL)) { if ((p = strchr (src, ';'))) *p = '\0'; } else return FALSE; } ++src; // Prepare strings to be compared // Hacky, but simple src = g_strdup_printf (",%s,", src); if (strcmp (type, "html") == 0) dest = g_strdup_printf (",%s,", uc_project_get_w3c_html_extensions ()); else if (strcmp (type, "css") == 0) dest = g_strdup_printf (",%s,", uc_project_get_w3c_css_extensions ()); else g_assert_not_reached (); accepted = (strstr (dest, src) != NULL); g_free (src), src = NULL; g_free (dest), dest = NULL; return accepted; } static gboolean uc_check_get_virii (UCLinkProperties * prop) { gboolean ret = FALSE; #ifdef ENABLE_CLAMAV UCClam *clam = NULL; gchar *path = NULL; uc_application_display_state_message ( UC_CHECK_MESSAGE_LABEL_THIRD, _("SECURITY: Checking for virii...")); UC_UPDATE_UI; path = uc_utils_convert_uid2file (prop->uid); if ((clam = uc_ucclam_new (NULL))) { ret = uc_ucclam_scan (clam, path, &prop->virname); uc_ucclam_free (&clam); } g_free (path), path = NULL; #endif return ret; } static gboolean uc_check_get_w3c_css_validate (UCLinkProperties * prop) { gboolean ret = TRUE; #ifdef ENABLE_CROCO UCCroco *croco = NULL; gchar *path = NULL; gchar *buffer = NULL; gsize size = 0; uc_application_display_state_message ( UC_CHECK_MESSAGE_LABEL_THIRD, _("W3C: Validate CSS stylesheet...")); UC_UPDATE_UI; path = uc_utils_convert_uid2file (prop->uid); buffer = uc_utils_get_file_content (path, &size); if ((croco = uc_uccroco_new ())) { ret = uc_uccroco_validate (croco, buffer); uc_uccroco_free (&croco); } g_free (buffer), buffer = NULL; g_free (path), path = NULL; #endif return ret; } static gboolean uc_check_get_w3c_html_validate (UCLinkProperties * prop) { gboolean ret = FALSE; #ifdef ENABLE_TIDY UCTidy *tidy = NULL; gchar *path = NULL; gchar *buffer = NULL; gsize size = 0; uc_application_display_state_message ( UC_CHECK_MESSAGE_LABEL_THIRD, _("W3C: Validate HTML page...")); UC_UPDATE_UI; path = uc_utils_convert_uid2file (prop->uid); buffer = uc_utils_get_file_content (path, &size); if ((tidy = uc_uctidy_new ())) { ret = (uc_uctidy_validate (tidy, buffer) == 0); uc_uctidy_free (&tidy); } g_free (buffer), buffer = NULL; g_free (path), path = NULL; #endif return ret; } /* * Check existence of bad extensions on the server for a given node. return a * list of existing extensions. */ static GList * uc_check_get_bad_extensions (UCLinkProperties * prop) { gchar **bad_extensions; guint bad_extensions_size = 0; guint i = 0; guint j = 0; gchar *status = NULL; UCLinkProperties *prop_tmp = NULL; gchar *extension = NULL; gboolean ignore_case = FALSE; gchar *tmp = NULL; if (prop->bad_extensions != NULL) { g_list_foreach (prop->bad_extensions, (GFunc) g_free, NULL); g_list_free (prop->bad_extensions), prop->bad_extensions = NULL; } if (prop->path == NULL || prop->path[strlen (prop->path) - 1] == '/') return NULL; // * For website projects, check for bad extension only for links // in main site pages. // * For bookmarks, dont' bother if (!uc_project_get_check_is_bookmarks () && g_ascii_strcasecmp (prop->h_name, uc_project_get_current_host ()) != 0) return NULL; tmp = uc_project_get_security_bad_extensions (); bad_extensions = g_strsplit (tmp, ",", -1); bad_extensions_size = uc_utils_vector_length (bad_extensions); // Lower case/Upper case for (i = 0; i < 2; i++) { for (j = 0; j < bad_extensions_size; j++) { // There is no need for lower/upper check for non alpha characters ignore_case = uc_utils_str_is_not_alphanum (bad_extensions[j]); if (ignore_case && i == 1) continue; prop_tmp = uc_check_link_properties_node_new (); prop_tmp->link_type = LINK_TYPES_SECURITY_TEST_BAD_EXTENSIONS; prop_tmp->protocol = g_strdup (prop->protocol); prop_tmp->h_name = g_strdup (prop->h_name); prop_tmp->port = g_strdup (prop->port); extension = (i == 1)? g_ascii_strup (bad_extensions[j], -1):g_strdup (bad_extensions[j]); prop_tmp->path = g_strdup_printf ("%s%s%s", prop->path, (ignore_case || extension[0] == ':' || extension[0] == '%' || extension[0] == '?')?"":".", extension); prop_tmp->args = g_strdup (""); tmp = g_strdup_printf ( _("SECURITY: Checking for bad extensions [%s]..."), extension); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, tmp); UC_UPDATE_UI; g_free (tmp), tmp = NULL; g_free (extension), extension = NULL; if ((prop_tmp->header = uc_check_url_get_header (prop_tmp)) && (status = g_hash_table_lookup (prop_tmp->header, UC_HEADER_STATUS)) && uc_check_status_is_good (status)) { if ((tmp = strrchr (prop_tmp->path, '/')) == NULL) tmp = prop_tmp->path; prop->bad_extensions = g_list_prepend (prop->bad_extensions, g_strdup (tmp)); uc_utils_debug ("[SECURITY] Bad extension : %s\n", (tmp)?tmp:""); } uc_lists_checked_links_node_free (NULL, &prop_tmp); } } g_strfreev (bad_extensions), bad_extensions = NULL; return prop->bad_extensions; } /* * Return TRUE if the given protocol is authorized * to be checked. */ static gboolean uc_check_protocol_accepted (gchar * protocol) { gchar **accepted = UC_CHECK_PROTOCOLS_GET_ACCEPTED; guint i = 0; gboolean found = FALSE; while (i < UC_CHECK_PROTOCOLS_ACCEPTED_LEN && !(found = (!strcmp (accepted[i++], protocol)))); g_strfreev (accepted), accepted = NULL; /* FIXME */ if (!strcmp (protocol, UC_PROTOCOL_MAILTO) && uc_project_get_proto_mailto ()) found = TRUE; else if (!strcmp (protocol, UC_PROTOCOL_FTP) && !uc_project_get_proto_ftp ()) found = FALSE; else if (!strcmp (protocol, UC_PROTOCOL_HTTPS) && !uc_project_get_proto_https ()) found = FALSE; else if (!strcmp (protocol, UC_PROTOCOL_FILE) && (uc_project_get_proto_file_is_error () || uc_project_get_proto_file_check ())) found = TRUE; return found; } /* * callback for uc_check_wait () */ static gboolean uc_check_wait_callback (gpointer data) { uc_check_wait_value = FALSE; return TRUE; } /* * wait */ void uc_check_wait (void) { gchar *buffer = NULL; guint id = 0; if (!uc_project_get_check_wait ()) return; buffer = g_strdup_printf (_("Sleeping %u second(s)..."), uc_project_get_check_wait ()); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, buffer); g_free (buffer), buffer = NULL; uc_check_wait_value = TRUE; id = g_timeout_add (uc_project_get_check_wait () * 1000, &uc_check_wait_callback, NULL); /* sleeping a while... */ while (uc_check_wait_value && (!uc_check_cancel_get_value () && !uc_check_ignore_item_get_value ())) { UC_UPDATE_UI; g_usleep (500); } g_source_remove (id), id = 0; } static gchar * uc_check_build_referer_field (void) { return (currentItem.parent != NULL) ? g_strdup_printf ("Referer: %s\r\n", currentItem.parent->url) : g_strdup (""); } /* * init a curentItem structure */ void uc_check_currentitem_init (UCLinkProperties * parent, gchar * current_host, UCHTMLTag * tag, gchar * url, gboolean is_first) { currentItem.is_first = is_first; currentItem.parent = parent; currentItem.current_host = current_host; currentItem.tag = tag; currentItem.url = url; } /* * make and return a basic UCLinkProperties node */ UCLinkProperties * uc_check_link_properties_node_new (void) { UCLinkProperties *prop = NULL; prop = g_new0 (UCLinkProperties, 1); prop->uid = uc_check_node_uid++; prop->treeview_path = NULL; prop->current_path = NULL; prop->tag = (gpointer) currentItem.tag; prop->parent = (currentItem.parent != NULL && !uc_check_is_main_page (currentItem.parent)) ? currentItem.parent : NULL; prop->link_type = LINK_TYPE_NONE; prop->link_icon = NULL; prop->status_icon = NULL; prop->user_action = NULL; prop->link_value = NULL; prop->url = NULL; prop->normalized_url = NULL; prop->label = NULL; prop->ip_addr = NULL; prop->h_name = NULL; prop->port = NULL; prop->path = NULL; prop->args = NULL; prop->domain = NULL; prop->header = NULL; prop->header_size = 0; prop->depth_level = 0; prop->metas = NULL; prop->emails = NULL; prop->all_links = NULL; prop->childs = NULL; prop->similar_links_parents = NULL; prop->bad_extensions = NULL; prop->virii = FALSE; prop->virname = NULL; prop->w3c_valid = TRUE; prop->tags = NULL; prop->is_parsable = FALSE; prop->is_downloadable = FALSE; prop->xml_node = NULL; #ifdef ENABLE_JSON prop->json_array = NULL; #endif prop->bookmark_folder_id = 0; prop->bookmark_id = 0; prop->to_delete = FALSE; prop->checked = FALSE; return (gpointer) prop; } /* * process a MAILTO link */ static gboolean uc_check_link_get_properties_proto_mailto (UCLinkProperties * prop) { gchar *email = NULL; gchar *tmp = NULL; gchar *user = NULL; gchar *domain = NULL; uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Checking E-Mail...")); UC_UPDATE_UI; /* retrieve the host name of the E-Mail link */ uc_utils_split_email (prop->path, &user, &domain); prop->domain = domain; prop->link_type = LINK_TYPE_EMAIL; prop->url = (strlen (user) > 0 || strlen (domain) > 0) ? g_strconcat (UC_PROTOCOL_MAILTO, ":", user, "@", domain, prop->args, NULL) : g_strconcat (UC_PROTOCOL_MAILTO, ":", prop->args, NULL); prop->header = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); g_free (user), user = NULL; email = prop->url; /* If there is no E-Mail but a URL like "?subject" etc. , * consider it is ok */ if (uc_utils_memcasecmp (email, "mailto:?")) tmp = UC_STATUS_CODE_GOOD_EMAIL_LINK; /* Check the E-Mail */ else switch (uc_utils_email_is_valid (email, (gboolean) uc_project_get_proto_mailto_check_mx ())) { case UC_EMAIL_SYNTAX_BAD: tmp = UC_STATUS_CODE_BAD_EMAIL_LINK; break; case UC_EMAIL_SYNTAX_MX_BAD: tmp = UC_STATUS_CODE_BAD_EMAIL_LINK_MX; break; case UC_EMAIL_OK: tmp = UC_STATUS_CODE_GOOD_EMAIL_LINK; break; /* syntax and mx are bad */ default: tmp = UC_STATUS_CODE_BAD_EMAIL_LINK; } g_hash_table_replace (prop->header, g_strdup (UC_HEADER_STATUS), g_strdup (tmp)); return FALSE; } /* * process a FILE link */ static gboolean uc_check_link_get_properties_proto_file (UCLinkProperties *prop, const gchar * url, const gchar * current_path, const gchar * current_host, const UCLinkType type) { GHashTable *tmp = NULL; gchar *str = NULL; gsize length = 0; uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Checking local file...")); UC_UPDATE_UI; tmp = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); if (uc_project_get_proto_file_is_error ()) g_hash_table_replace (tmp, g_strdup (UC_HEADER_STATUS), g_strdup (UC_STATUS_CODE_FILE_PROTO_ERROR)); else { if (g_file_test (prop->path, G_FILE_TEST_EXISTS) && (str = uc_utils_get_file_content (prop->path, &length))) { /* FIXME */ uc_cache_append_source (prop->uid, str, strlen (str)); g_hash_table_replace ( tmp, g_strdup (UC_CONTENT_LENGTH), g_strdup_printf ("%lu", (unsigned long) strlen (str))); g_hash_table_replace (tmp, g_strdup (UC_HEADER_STATUS), g_strdup (UC_STATUS_CODE_PAGE_OK)); if (prop->link_type != LINK_TYPE_FILE_IMAGE) { GList *item = NULL; prop->tags = (prop->link_type == LINK_TYPE_CSS || prop->link_type == LINK_TYPE_CSS_SSL) ? uc_css_parser_get_tags (str) : uc_html_parser_get_tags (str); item = g_list_first (prop->tags); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; gchar *normalized_url = NULL; UCLinkProperties *prop_tmp = NULL; UC_UPDATE_UI; item = g_list_next (item); normalized_url = uc_url_normalize (current_host, current_path, tag->value); // Exclude already checked links if ((prop_tmp = uc_check_link_already_checked (normalized_url))) { if (!uc_lists_similar_links_exist ( prop_tmp->similar_links_parents, normalized_url)) { uc_lists_similar_links_append ((gpointer) prop_tmp, normalized_url); } uc_lists_html_tags_node_free (&prop->tags, &tag); } else { if (tag->type == LINK_TYPE_META) prop->metas = g_list_append (prop->metas, (gpointer) tag); else if (tag->type == LINK_TYPE_EMAIL) prop->emails = g_list_append (prop->emails, (gpointer) tag); else if (tag->type != LINK_TYPE_NONE) prop->all_links = g_list_append (prop->all_links, (gpointer) tag); } g_free (normalized_url), normalized_url = NULL; } } g_free (str), str = NULL; } else g_hash_table_replace (tmp, g_strdup (UC_HEADER_STATUS), g_strdup (UC_STATUS_CODE_PAGE_NOT_FOUND)); } g_hash_table_replace (tmp, g_strdup (UC_CONTENT_TYPE), g_strdup (UC_CONTENT_TYPE_HTML)); prop->header = tmp; prop->domain = g_strdup (""); prop->url = g_strdup (url); prop->link_type = type; return FALSE; } void uc_check_refresh_report (void) { guint32 bad = 0; guint32 malformed = 0; guint32 good = 0; guint32 timeout = 0; guint32 ignore = 0; uc_application_set_status_bar (0, _("Updating report...")); uc_check_report_reset (0); uc_check_refresh_report_real (uc_lists_checked_links_get (), &bad, &malformed, &good, &timeout, &ignore); uc_report_set_badlinks (bad); uc_report_set_malformedlinks (malformed); uc_report_set_goodlinks (good); uc_report_set_timedoutlinks (timeout); uc_report_set_ignoredlinks (ignore); uc_report_display_update (); uc_application_set_status_bar (0, ""); } static void uc_check_refresh_report_real (GList * list, guint32 * bad, guint32 * malformed, guint32 * good, guint32 * timeout, guint32 * ignore) { GList *item = NULL; gchar *status = NULL; item = g_list_first (list); while (item != NULL) { UCLinkProperties *prop = (UCLinkProperties *) item->data; item = g_list_next (item); /* we do not register bookmark's folders */ if (prop->link_type != LINK_TYPE_BOOKMARK_FOLDER && !prop->to_delete && !uc_check_is_main_page (prop)) { status = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); /* timeouts */ if (uc_check_status_is_timeout (status)) (*timeout)++; /* good links */ else if (uc_check_status_is_good (status)) (*good)++; /* bad links */ else if (uc_check_status_is_bad (status)) (*bad)++; /* malformed links */ else if (uc_check_status_is_malformed (status)) (*malformed)++; else if (uc_check_status_is_ignored (status)) (*ignore)++; } if (prop->childs != NULL) uc_check_refresh_report_real (prop->childs, &(*bad), &(*malformed), &(*good), &(*timeout), &(*ignore)); } } /* * process a HTTP link */ static UCHTTPCheckReturn uc_check_link_get_properties_proto_http (UCLinkProperties * prop, const gchar * url, const gchar * current_path, gchar * current_host, UCHTMLTag * tag, UCLinkProperties * old_prop) { gchar *str = NULL; gchar *status_code = NULL; GList *item = NULL; gchar *content_type = NULL; gchar *path_args = NULL; gchar *tmp = NULL; if (strlen (prop->h_name) > 0) { tmp = g_strconcat (prop->path, prop->args, NULL); path_args = uc_utils_to_utf8 (tmp); g_free (tmp), tmp = NULL; /* Has a specific port been specified */ prop->url = (!strcmp (prop->port, UC_URL_DEFAULT_PORT) || !strcmp (prop->port, UC_URL_DEFAULT_SSL_PORT)) ? g_strconcat (prop->protocol, "://", prop->h_name, path_args, NULL) : g_strconcat (prop->protocol, "://", prop->h_name, ":", prop->port, path_args, NULL); g_free (path_args), path_args = NULL; } /* malformed tag */ else { if (prop->url == NULL) prop->url = g_strdup (""); return UC_HTTP_CHECK_RETURN_MALFORMED; } /* cancel if bad header */ if ((prop->header = uc_check_url_get_header ((gpointer) prop)) == NULL) return UC_HTTP_CHECK_RETURN_TIMEOUT; /* if we are rescanning a link, test if it has changed. * if yes, do not go further */ if (uc_check_refresh_link_get_value () && old_prop != NULL) { gchar *lm_date_old = NULL; gchar *lm_date_new = NULL; lm_date_old = g_hash_table_lookup (old_prop->header, UC_LAST_MODIFIED); lm_date_new = g_hash_table_lookup (prop->header, UC_LAST_MODIFIED); /* if lm dates are the same, keep this url/prop for reinjecting it * at the end of the update in the prop's childs */ if (lm_date_old != NULL && lm_date_new != NULL && !strcmp (lm_date_old, lm_date_new)) { uc_lists_refresh_preserved_links_append (old_prop); uc_lists_already_checked_links_append (old_prop->normalized_url, old_prop); return UC_HTTP_CHECK_RETURN_SAME; } } /* cancel if content type not accepted */ content_type = g_hash_table_lookup (prop->header, UC_CONTENT_TYPE); if (!uc_check_content_type_accepted (prop->path, content_type)) return UC_HTTP_CHECK_RETURN_BAD; prop->link_type = tag->type; prop->domain = g_strdup (""); status_code = g_hash_table_lookup (prop->header, UC_HEADER_STATUS); if (uc_check_status_is_good (status_code)) { if (!uc_project_get_speed_check () || uc_project_speed_check_get_download_content ()) { /* if redirection, go on and download the * content */ if (status_code[0] != '3') uc_project_speed_check_set_download_content (FALSE); prop->is_parsable = uc_check_content_type_parsable (content_type); prop->is_downloadable = (prop->is_parsable || uc_check_content_type_downloadable (content_type)); if (uc_project_get_url () != NULL) prop->is_parsable = (prop->is_parsable && g_ascii_strcasecmp (prop->h_name, uc_project_get_current_host ()) == 0); } else { prop->is_parsable = FALSE; prop->is_downloadable = FALSE; } } else return UC_HTTP_CHECK_RETURN_OK; if (uc_url_is_faked (prop, tag)) return UC_HTTP_CHECK_RETURN_FAKED_URL; /* we don't want to download this link */ if (!prop->is_downloadable) return UC_HTTP_CHECK_RETURN_OK; /* does this item is authorized? */ if (!uc_check_apply_filters (prop)) { uc_utils_debug (" FILTERED: %s\n", (prop->url)?prop->url:""); return UC_HTTP_CHECK_RETURN_BAD; } /* If we have not retrieved the source, either something wrong * occured or the user has cancelled the check */ if (strcmp (prop->protocol, UC_PROTOCOL_FTP) && (str = uc_check_url_get_content (prop, current_path, prop->port, prop->args, current_host)) == NULL) return UC_HTTP_CHECK_RETURN_TIMEOUT; if (prop->link_type != LINK_TYPE_IMAGE) { prop->tags = (prop->link_type == LINK_TYPE_CSS || prop->link_type == LINK_TYPE_CSS_SSL) ? uc_css_parser_get_tags (str) : uc_html_parser_get_tags (str); if (uc_check_ignore_item_get_value ()) { g_free (str), str = NULL; return UC_HTTP_CHECK_RETURN_IGNORE; } item = g_list_first (prop->tags); while (item != NULL) { UCHTMLTag *tag = (UCHTMLTag *) item->data; gchar *normalized_url = NULL; UCLinkProperties *prop_tmp = NULL; UC_UPDATE_UI; item = g_list_next (item); normalized_url = uc_url_normalize (current_host, current_path, tag->value); // Exclude already checked links if ((prop_tmp = uc_check_link_already_checked (normalized_url))) { if (!uc_lists_similar_links_exist ( prop_tmp->similar_links_parents, normalized_url)) { uc_lists_similar_links_append ((gpointer) prop_tmp, normalized_url); } uc_lists_html_tags_node_free (&prop->tags, &tag); } else { if (tag->type == LINK_TYPE_META) prop->metas = g_list_append (prop->metas, (gpointer) tag); else if (tag->type == LINK_TYPE_EMAIL) prop->emails = g_list_append (prop->emails, (gpointer) tag); else if (tag->type != LINK_TYPE_NONE) prop->all_links = g_list_append (prop->all_links, (gpointer) tag); } g_free (normalized_url), normalized_url = NULL; } } g_free (str), str = NULL; return UC_HTTP_CHECK_RETURN_OK; } /* * fill the UCLinkProperties struct to associate with * the url */ UCLinkProperties * uc_check_link_get_properties (const guint depth, gchar * current_host, gchar * current_path, UCHTMLTag * tag, UCLinkProperties * old_prop, gboolean * accept, guint retry) { UCLinkProperties *prop = NULL; UCStatusCode *sc = NULL; gchar *protocol = NULL; gchar *hostname = NULL; protocol = NULL; gboolean cancel = FALSE; gboolean blocked_domain = FALSE; gboolean already_checked = FALSE; gboolean no_check = FALSE; UCHTTPCheckReturn ret = UC_HTTP_CHECK_RETURN_OK; protocol = uc_url_get_protocol (tag->value); if (uc_check_protocol_accepted (protocol)) { // Already checked link? already_checked = uc_check_link_already_checked_with_insert (currentItem.parent, currentItem.url); // Must we block this link? hostname = uc_url_get_hostname (currentItem.current_host, currentItem.url); blocked_domain = (!already_checked && uc_timeout_domains_is_blocked (hostname)); g_free (hostname), hostname = NULL; // If blocked or already checked, do nothing no_check = (already_checked || blocked_domain); } else no_check = TRUE; if (no_check) { g_free (protocol), protocol = NULL; return NULL; } uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_SECOND, tag->value); uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Searching...")); UC_UPDATE_UI; prop = uc_check_link_properties_node_new (); prop->depth_level = depth; prop->link_value = g_strdup (tag->value); prop->protocol = protocol; prop->current_path = g_strdup (current_path); (gboolean) uc_url_parse (current_host, current_path, tag->value, &prop->h_name, &prop->port, &prop->path, &prop->args); // If we chroot the check, initialize the directory to chroot in if (currentItem.is_first) { gchar *dir = NULL; // Set project main hostname uc_project_set_current_host (prop->h_name); // Set main project chroot path if (uc_project_get_check_chroot ()) { dir = g_path_get_dirname (prop->path); uc_project_set_chroot_path (dir); g_free (dir), dir = NULL; } else uc_project_set_chroot_path (""); } // If we are in chroot mode (just this directory and its subdirectories, // or just local links) if (!uc_check_chroot_authorized (prop->h_name, prop->protocol, prop->path)) goto error_handler; // MAILTO protocol if (tag->type == LINK_TYPE_EMAIL) cancel = uc_check_link_get_properties_proto_mailto (prop); // FILE protocol else if (tag->type == LINK_TYPE_FILE_HREF || tag->type == LINK_TYPE_FILE_IMAGE) cancel = uc_check_link_get_properties_proto_file (prop, tag->value, current_path, current_host, tag->type); // HTTP protocol else if (tag->type != LINK_TYPE_NONE) { gboolean old_no_args = FALSE; // Always take URL args in account for images and CSS links if (tag->type != LINK_TYPE_HREF) { old_no_args = uc_project_get_no_urls_args (); uc_project_set_no_urls_args (FALSE); } ret = uc_check_link_get_properties_proto_http (prop, tag->value, current_path, current_host, tag, old_prop); cancel = (ret == UC_HTTP_CHECK_RETURN_SAME); // Restore value if (tag->type != LINK_TYPE_HREF) uc_project_set_no_urls_args (old_no_args); // If the link is a redirection (HTTP), or if there is a META // refresh in the page content (HTML), retry with the new location // -> Retry 3 times max, to avoid infinite loop if (ret == UC_HTTP_CHECK_RETURN_FAKED_URL || (prop->metas != NULL && uc_utils_get_meta_refresh_location (prop, tag))) { cancel = TRUE; if (retry <= 3) { do { gchar *normalized_url = NULL; gboolean old_no_args = FALSE; normalized_url = uc_url_normalize (current_host, current_path, tag->value); uc_check_currentitem_init (currentItem.parent, current_host, tag, normalized_url, currentItem.is_first); uc_lists_checked_links_node_free (NULL, &prop); // Take URL args in account when following HTTP new location or // META refresh value old_no_args = uc_project_get_no_urls_args (); uc_project_set_no_urls_args (FALSE); prop = uc_check_link_get_properties (depth, current_host, current_path, tag, old_prop, accept, retry + 1); // Restore old value uc_project_set_no_urls_args (old_no_args); g_free (normalized_url), normalized_url = NULL; } while (uc_utils_get_meta_refresh_location (prop, tag)); cancel = FALSE; } } } else goto error_handler; // Either a error occured or the user has cancelled the check if (prop == NULL || cancel) goto error_handler; // If user choose to ignore this links if (uc_check_ignore_item_get_value ()) { if (prop->header != NULL) g_hash_table_destroy (prop->header), prop->header = NULL; prop->header = uc_check_url_build_header (UC_STATUS_CODE_IGNORED_LINK); uc_report_set_ignoredlinks (-1); uc_check_ignore_item_set_value (FALSE); } // If malformed tag else if (ret == UC_HTTP_CHECK_RETURN_MALFORMED) { if (prop->header != NULL) g_hash_table_destroy (prop->header), prop->header = NULL; prop->header = uc_check_url_build_header (UC_STATUS_CODE_MALFORMED_LINK); uc_report_set_malformedlinks (-1); } // FILE protocol detected and user choice is: warn me! else if ((prop->header && !strcmp ((gchar *) g_hash_table_lookup (prop->header, UC_HEADER_STATUS), UC_STATUS_CODE_FILE_PROTO_ERROR))) { uc_report_set_malformedlinks (-1); } // If connection timeout else if (ret == UC_HTTP_CHECK_RETURN_TIMEOUT) { if (prop->header != NULL) g_hash_table_destroy (prop->header), prop->header = NULL; prop->header = uc_check_url_build_header (UC_STATUS_CODE_TIMEOUT); uc_timeout_domains_register (prop->h_name); } *accept = uc_check_apply_filters (prop); prop->link_icon = uc_check_get_link_type_icon (prop->link_type, prop->protocol); sc = uc_application_get_status_code_properties (g_hash_table_lookup (prop->header, UC_HEADER_STATUS)); prop->status_icon = sc->icon_file; prop->label = g_strdup (tag->label); // If authentication needed (works only for main URL) if (uc_project_get_prompt_auth () && strcmp (g_hash_table_lookup (prop->header, UC_HEADER_STATUS), UC_STATUS_CODE_RESTRICTED) == 0 && strcmp (uc_project_get_current_host (), prop->h_name) == 0) { if (uc_application_auth_dialog_show ( g_hash_table_lookup (prop->header, UC_WWW_AUTHENTICATE), prop->h_name)) { uc_lists_checked_links_node_free (NULL, &prop); prop = uc_check_link_get_properties (depth, current_host, current_path, tag, old_prop, accept, retry); } else uc_check_ignore_item_set_value (TRUE); } return prop; // Clean at function exit error_handler: if (prop != NULL) uc_lists_checked_links_node_free (NULL, &prop); return NULL; } guint32 uc_check_get_main_page_id (void) { GList *list = NULL; guint32 ret = 1; list = uc_lists_checked_links_get (); if (list != NULL) ret = ((UCLinkProperties *) list->data)->uid; return ret; } gboolean uc_check_is_main_page (const UCLinkProperties * prop) { g_return_val_if_fail (prop != NULL, FALSE); return (prop->uid == uc_check_get_main_page_id ()); } UCLinkProperties * uc_check_copy_node (UCLinkProperties * src, UCLinkProperties * dst) { if (dst->header != NULL) g_hash_table_destroy (dst->header), dst->header = NULL; dst->header = src->header; dst->header_size = src->header_size; dst->link_type = src->link_type; dst->link_icon = src->link_icon; dst->status_icon = src->status_icon; g_free (dst->link_value), dst->link_value = src->link_value; g_free (dst->url), dst->url = src->url; g_free (dst->normalized_url), dst->normalized_url = src->normalized_url; g_free (dst->label), dst->label = src->label; g_free (dst->protocol), dst->protocol = src->protocol; g_free (dst->h_name), dst->h_name = src->h_name; g_free (dst->port), dst->port = src->port; g_free (dst->path), dst->path = src->path; g_free (dst->args), dst->args = src->args; g_free (dst->domain), dst->domain = src->domain; dst->is_parsable = src->is_parsable; dst->is_downloadable = src->is_downloadable; dst->virii = src->virii; dst->w3c_valid = src->w3c_valid; /* FIXME dst->similar_links_parents = src->similar_links_parents; */ dst->bad_extensions = src->bad_extensions; dst->tags = src->tags; dst->all_links = src->all_links; dst->emails = src->emails; dst->metas = src->metas; if (src->is_downloadable) uc_cache_change_id (dst->uid, src->uid); return dst; } void uc_check_set_depth (GList * list, const guint depth) { GList *tmp = NULL; tmp = g_list_first (list); while (tmp != NULL) { UCLinkProperties *prop = (UCLinkProperties *) tmp->data; prop->depth_level = depth; if (prop->childs != NULL) uc_check_set_depth (prop->childs, depth + 1); tmp = g_list_next (tmp); } } gurlchecker-0.13.1/src/url.h0000644000175000017500000000325011275575426012573 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_URL #define H_UC_URL #include "general.h" gchar *uc_url_extract_url_from_local_path (const gchar * path); gboolean uc_url_is_faked (UCLinkProperties * prop, UCHTMLTag * tag); void uc_url_correction (UCLinkProperties * prop); gchar *uc_url_normalize (const gchar * current_host, const gchar * current_path, gchar * url); gchar *uc_url_get_hostname (const gchar * current_host, const gchar * url); gchar *uc_url_get_port (const gchar * url); gchar *uc_url_add_protocol (const gchar * proto, const gchar * host); gchar *uc_url_add_slash (const gchar * url); gboolean uc_url_is_valid (const gchar * url); gchar *uc_url_get_protocol (const gchar * url); gboolean uc_url_parse (const gchar * current_host, const gchar * current_path, gchar * rurl, gchar ** host, gchar ** port, gchar ** path, gchar ** args); gchar *uc_url_get_ip (gchar * host); #endif gurlchecker-0.13.1/src/report.h0000644000175000017500000000410511324160452013264 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_REPORT #define H_UC_REPORT #include "general.h" void uc_report_export (const UCExportFormat format, GList *list, const UCExportFormat ftype); void uc_check_report_force_values (const gint32 all, const gint32 checked, const gint32 bad, const gint32 malformed, const gint32 good, const gint32 ignored, const gint32 timeout, const guint32 elapsedtime); guint32 uc_report_get_ignoredlinks (void); guint32 uc_report_get_checkedlinks (void); guint32 uc_report_get_badlinks (void); guint32 uc_report_get_malformedlinks (void); guint32 uc_report_get_goodlinks (void); guint32 uc_report_get_timedoutlinks (void); guint32 uc_report_get_alllinks (void); guint32 uc_report_get_elapsedtime (void); gboolean uc_report_timer_callback (gpointer data); void uc_report_set_elapsedtime (const guint32 val); void uc_report_set_timedoutlinks (const gint32 val); void uc_report_set_alllinks (const gint32 val); void uc_report_set_checkedlinks (void); void uc_report_display_update (void); void uc_report_set_badlinks (const gint32 val); void uc_report_set_malformedlinks (const gint32 val); void uc_check_report_reset (const guint val); void uc_report_set_goodlinks (const gint32 val); void uc_report_set_ignoredlinks (const gint32 val); #endif gurlchecker-0.13.1/src/check.h0000644000175000017500000001152511335550115013033 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #ifndef H_UC_CHECK #define H_UC_CHECK #include "general.h" #define UC_CHECK_PARSER_WHILE_CONDITION \ ( \ (item) && \ (!uc_check_cancel_get_value ()) \ ) #define UC_CHECK_ABORT_IF_CONDITION \ uc_check_cancel_get_value () || \ (!prop->url) || \ g_strcasecmp (uc_project_get_current_host (), host) != 0 || \ depth == uc_project_get_depth_level () /* definition of the treeview columns */ enum { UID_COLUMN, LINK_STATUS_ICON_COLUMN, SECURITY_ALERT_ICON_COLUMN, W3C_ALERT_ICON_COLUMN, LINK_ICON_COLUMN, ACTION_COLUMN, LABEL_COLUMN, URL_COLUMN, LM_COLUMN, N_COLUMNS }; /* * enum for return code of the href properties * function */ typedef enum { UC_HTTP_CHECK_RETURN_SAME, UC_HTTP_CHECK_RETURN_OK, UC_HTTP_CHECK_RETURN_BAD, UC_HTTP_CHECK_RETURN_REDIR, UC_HTTP_CHECK_RETURN_IGNORE, UC_HTTP_CHECK_RETURN_FAKED_URL, UC_HTTP_CHECK_RETURN_TIMEOUT, UC_HTTP_CHECK_RETURN_MALFORMED } UCHTTPCheckReturn; GHashTable *uc_check_url_get_header (UCLinkProperties * prop); gboolean uc_check_content_type_w3c_accepted (const gchar * type, gchar * path, gchar * content_type); gboolean uc_check_is_w3c_alert (const UCLinkProperties * prop); gboolean uc_check_html_is_valid (const gchar * buffer); gchar *uc_check_url_get_content (UCLinkProperties * prop, const gchar * current_path, const gchar * current_port, const gchar * current_args, gchar * current_host); void uc_check_run_security_checks (UCLinkProperties * prop); void uc_check_run_w3c_checks (UCLinkProperties * prop); guint32 uc_check_get_main_page_id (void); void uc_check_refresh_report (void); void uc_check_set_depth (GList * list, const guint depth); UCLinkProperties *uc_check_copy_node (UCLinkProperties * src, UCLinkProperties * dst); gboolean uc_check_is_main_page (const UCLinkProperties * prop); gchar *uc_check_get_link_type_icon_path (const UCLinkType link_type, const gchar * proto); gchar *uc_check_get_link_type_label (const UCLinkType type); void uc_check_refresh_link (const guint32 id); void uc_check_refresh_link_real (UCLinkProperties * prop); gboolean uc_check_refresh_link_get_value (void); void uc_check_refresh_link_set_value (const gboolean value); gchar *uc_check_get_link_type_for_icon (const gchar * proto); GdkPixbuf *uc_check_get_link_type_icon (const UCLinkType link_type, const gchar * proto); void uc_check_currentitem_init (UCLinkProperties * parent, gchar * current_host, UCHTMLTag * tag, gchar * url, gboolean is_first); void uc_check_wait (void); gboolean uc_check_link_already_checked_with_insert (UCLinkProperties * prop, gchar * url); gpointer uc_check_register_link (const gchar * normalized_url, UCLinkProperties * lp); UCLinkProperties *uc_check_link_get_properties (const guint depth, gchar * current_host, gchar * current_path, UCHTMLTag * tag, UCLinkProperties * old_prop, gboolean * accept, guint retry); UCLinkProperties *uc_check_link_properties_node_new (void); void uc_check_mx_is_valid (void); gboolean uc_check_status_is_ignored (const gchar * status); gboolean uc_check_status_is_good (const gchar * status); gboolean uc_check_status_is_bad (const gchar * status); gboolean uc_check_status_is_malformed (const gchar * status); gboolean uc_check_status_is_timeout (const gchar * status); gboolean uc_check_status_is_email (const gchar * status); void uc_check_suspend_continue (void); gboolean uc_check_cancel_get_value (void); gboolean uc_check_suspend_get_value (void); gboolean uc_check_ignore_item_get_value (void); gint32 uc_check_treeview_get_selected_row_id (void); void uc_check_web_begin (void); void uc_check_bookmarks_begin (void); void uc_check_cancel_set_value (const gboolean value); void uc_check_ignore_item_set_value (const gboolean value); void uc_check_display_items_active_all (void); void uc_check_display_list (GList * list, gchar * path, GtkTreeIter iter); void uc_check_reset (void); void uc_check_alarm_callback (const int dum); void uc_check_link_view_source (void); #endif gurlchecker-0.13.1/src/cookies.h0000644000175000017500000000202411275575426013423 00000000000000/* * Copyright (C) 2002-2009 * Emmanuel Saracco * * 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. */ #ifndef H_UC_COOKIES #define H_UC_COOKIES #include "general.h" void uc_cookies_add (const UCLinkProperties * prop, const gchar * cook); void uc_cookies_free (void); gchar *uc_cookies_get_header_field (gchar * path); #endif gurlchecker-0.13.1/src/search.h0000644000175000017500000000214611275575426013241 00000000000000/* * Copyright (C) 2002-2005 * Emmanuel Saracco * * 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. */ #ifndef H_UC_SEARCH #define H_UC_SEARCH #include "general.h" gboolean uc_search_get_exit (void); void uc_search_set_exit (const gboolean val); void uc_search_main_select (GtkTreeView * selection); void uc_search_check_verification (void); void uc_search_free (void); void uc_search_begin (void); #endif gurlchecker-0.13.1/src/callbacks.c0000644000175000017500000006121111334223207013663 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "application.h" #include "lists.h" #include "check.h" #include "project.h" #include "tooltips.h" #include "search.h" #include "bookmarks.h" #include "web_site.h" #include "report.h" #include "utils.h" #include "callbacks.h" void on_settings_cookies_toggled_cb (GtkToggleButton * button, gpointer user_data) { if (strcmp (gtk_widget_get_name (GTK_WIDGET (button)), "sd_radio_cookies_accept") == 0) WSENS ("sd_frame_alerts", TRUE); else WSENS ("sd_frame_alerts", FALSE); } void on_settings_w3c_toggled_cb (GtkToggleButton * button, gpointer user_data) { WSENS ("sd_notebook_w3c", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))); } void on_settings_security_toggled_cb (GtkToggleButton * button, gpointer user_data) { WSENS ("sd_notebook_security", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))); } gboolean on_widget_deactivate_brelease_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { return (event->type == GDK_BUTTON_RELEASE); } gboolean on_display_checkbox_status_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { const gchar *wname = NULL; UCDisplayStatus status; if (event->type == GDK_BUTTON_RELEASE) { wname = gtk_widget_get_name (widget); if (strcmp (wname, "mwm_display_goodlinks") == 0) status = UC_DISPLAY_STATUS_GOODLINKS; else if (strcmp (wname, "mwm_display_badlinks") == 0) status = UC_DISPLAY_STATUS_BADLINKS; else if (strcmp (wname, "mwm_display_timeouts") == 0) status = UC_DISPLAY_STATUS_TIMEOUTS; else if (strcmp (wname, "mwm_display_malformedlinks") == 0) status = UC_DISPLAY_STATUS_MALFORMEDLINKS; else if (strcmp (wname, "mwm_display_security_alerts") == 0) status = UC_DISPLAY_STATUS_SECURITY_ALERTS; else if (strcmp (wname, "mwm_display_w3c_alerts") == 0) status = UC_DISPLAY_STATUS_W3C_ALERTS; else g_assert_not_reached (); if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), TRUE); uc_application_reset_menu_types (); uc_application_reset_menu_protocols (); UC_DISPLAY_STATUS_SET (status); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE); UC_DISPLAY_STATUS_UNSET (status); } uc_application_main_tree_apply_filters ("mwm_link_status"); return TRUE; } return FALSE; } gboolean on_display_checkbox_type_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { const gchar *wname = NULL; UCDisplayType type; if (event->type == GDK_BUTTON_RELEASE) { wname = gtk_widget_get_name (widget); if (strcmp (wname, "mwm_document_type") == 0) type = UC_DISPLAY_TYPE_HREF; else if (strcmp (wname, "mwm_image_type") == 0) type = UC_DISPLAY_TYPE_IMAGE; else if (strcmp (wname, "mwm_frame_type") == 0) type = UC_DISPLAY_TYPE_FRAME; else if (strcmp (wname, "mwm_email_type") == 0) type = UC_DISPLAY_TYPE_EMAIL; else if (strcmp (wname, "mwm_stylesheet_type") == 0) type = UC_DISPLAY_TYPE_CSS; else g_assert_not_reached (); if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), TRUE); uc_application_reset_menu_status (); uc_application_reset_menu_protocols (); UC_DISPLAY_TYPE_SET (type); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE); UC_DISPLAY_TYPE_UNSET (type); } uc_application_main_tree_apply_filters ("mwm_link_type"); return TRUE; } return FALSE; } gboolean on_display_checkbox_protocol_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { const gchar *wname = NULL; UCDisplayProto proto; if (event->type == GDK_BUTTON_RELEASE) { wname = gtk_widget_get_name (widget); if (strcmp (wname, "mwm_http_protocol") == 0) proto = UC_DISPLAY_PROTO_HTTP; else if (strcmp (wname, "mwm_file_protocol") == 0) proto = UC_DISPLAY_PROTO_FILE; else if (strcmp (wname, "mwm_https_protocol") == 0) proto = UC_DISPLAY_PROTO_HTTPS; else if (strcmp (wname, "mwm_ftp_protocol") == 0) proto = UC_DISPLAY_PROTO_FTP; else g_assert_not_reached (); if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), TRUE); uc_application_reset_menu_status (); uc_application_reset_menu_types (); UC_DISPLAY_PROTO_SET (proto); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE); UC_DISPLAY_PROTO_UNSET (proto); } uc_application_main_tree_apply_filters ("mwm_protocol"); return TRUE; } return FALSE; } void on_search_close_clicked (GtkButton * button, gpointer user_data) { uc_search_set_exit (TRUE); if (treestore_search != NULL) g_object_unref (G_OBJECT (treestore_search)), treestore_search = NULL; WSENS ("mwm_find", TRUE); WSENS ("mwm_project", TRUE); WSENS ("mw_bt_new", TRUE); WSENS ("mw_bt_open", TRUE); } void on_view_link_content_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_view_source_dialog_show (); } void on_w3c_validate_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_w3c_validate (); } void on_quit_activate (GtkMenuItem * menuitem, gpointer user_data) { if (!uc_application_quit ()) gtk_exit (0); } void on_about_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_about_dialog_show (); } void on_settings_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_settings_dialog_show (); } void on_display_all_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_main_tree_display_all (); } void on_display_collapse_all_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_main_tree_collapse_all (); } void on_display_expand_all_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_main_tree_expand_all (); } void on_bt_ok_settings_dialog_clicked (GtkButton * button, gpointer user_data) { if (uc_application_settings_get_data ()) gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET (button))); } void on_bt_new_project_clicked (GtkButton * button, gpointer user_data) { uc_application_new_web_dialog_show (); } void on_bt_apply_settings_dialog_clicked (GtkButton * button, gpointer user_data) { uc_application_settings_get_data (); } void on_treeview_projects_cursor_changed (GtkTreeView * selection, gpointer user_data) { uc_project_display_informations (selection); } void on_urls_list_cursor_changed (GtkTreeView * selection, gpointer user_data) { uc_application_display_informations (selection); } void on_search_list_cursor_changed (GtkTreeView * selection, gpointer user_data) { UC_UPDATE_UI; uc_search_main_select (selection); } gboolean on_url_list_mouse_clicked (GtkWidget * widget, GdkEventButton * event, gpointer data) { /* show page properties on left * double-click */ if (event->type == GDK_2BUTTON_PRESS) uc_application_page_information_dialog_show (); /* show contextual popup menu on right * button release */ else if ((event->type == GDK_BUTTON_RELEASE) && (event->button == 3)) uc_application_treeview_activate_popup (event); return FALSE; } gboolean on_project_list_mouse_clicked (GtkWidget * widget, GdkEventButton * event, gpointer data) { gint32 id = 0; /* open project on left double-click */ if (event->type == GDK_2BUTTON_PRESS) { id = uc_project_treeview_get_selected_row_id (); if (id > 0) { gtk_widget_hide (gtk_widget_get_toplevel (widget)); uc_project_open (id); } } return FALSE; } void on_bt_cancel_progress_dialog_clicked (GtkButton * button, gpointer user_data) { uc_application_progress_dialog_set_modal (TRUE); uc_check_cancel_set_value (TRUE); } void on_bt_ignore_progress_dialog_clicked (GtkButton * button, gpointer user_data) { uc_check_ignore_item_set_value (TRUE); } void on_progress_dialog_close (GtkDialog * dialog, gpointer user_data) { uc_check_cancel_set_value (TRUE); } void on_dialog_close_activate (GtkButton * button, gpointer user_data) { gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET (button))); } gboolean on_dialog_delete_event (GtkWidget * widget, GdkEvent * event, gpointer user_data) { const gchar *name = NULL; name = gtk_widget_get_name (widget); if (!strcmp (name, "relations_dialog")) { uc_utils_clear_container (GTK_CONTAINER (widget)); } else if (!strcmp (name, "open_project_dialog")) { uc_application_set_status_bar (0, ""); } else if (!strcmp (name, "progress_dialog")) { uc_check_cancel_set_value (TRUE); } else if (!strcmp (name, "search_dialog")) { on_search_close_clicked (NULL, NULL); } gtk_widget_hide (widget); return TRUE; } gboolean on_progress_dialog_delete_event (GtkWidget * widget, GdkEvent * event, gpointer user_data) { uc_check_cancel_set_value (TRUE); return TRUE; } void on_bt_basic_display_format_clicked (GtkButton * button, gpointer user_data) { uc_application_display_informations (GTK_TREE_VIEW (user_data)); } void on_bt_detailed_display_format_clicked (GtkButton * button, gpointer user_data) { uc_application_display_informations (GTK_TREE_VIEW (user_data)); } gboolean on_key_press_event (GtkWidget * widget, GdkEventKey * event, gpointer user_data) { const gchar *b = NULL; const gchar *e = NULL; const gchar *name = NULL; gchar *prefix = NULL; gchar *bt_ok_name = NULL; if (event->keyval != GDK_Return) return FALSE; /* Retrieve widget name prefix to guess the "Ok" button name */ if (!(name = gtk_widget_get_name (widget)) || !(b = name) || !(e = strchr (name, '_')) || !(prefix = uc_utils_strdup_delim (b, e))) { g_warning ("Error while proccessing ENTER key signal event."); g_free (prefix), prefix = NULL; return FALSE; } bt_ok_name = g_strdup_printf ("%s_bt_ok", prefix); gtk_widget_activate (WGET (bt_ok_name)); g_free (bt_ok_name), bt_ok_name = NULL; g_free (prefix), prefix = NULL; return TRUE; } void on_new_instance_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_new_instance_launch (); } void on_report_export_html_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_report_export (UC_EXPORT_HTML, NULL, UC_EXPORT_LIST_NORMAL); } void on_bt_export_csv_similar_links_clicked (GtkButton * button, gpointer user_data) { UCLinkProperties *prop = NULL; gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id < 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); uc_report_export (UC_EXPORT_CSV, prop->similar_links_parents, UC_EXPORT_LIST_SIMPLE); } void on_bt_export_csv_page_links_clicked (GtkButton * button, gpointer user_data) { UCLinkProperties *prop = NULL; gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id < 0) return; prop = uc_lists_checked_links_lookup_by_uid (id); uc_report_export (UC_EXPORT_CSV, prop->all_links, UC_EXPORT_LIST_SIMPLE); } void on_report_export_csv_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_report_export (UC_EXPORT_CSV, uc_lists_checked_links_get (), UC_EXPORT_LIST_NORMAL); } void on_page_information_dialog_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { // Set visible "CSV export" button if we ar on "Links" page if (page_num == 1) gtk_widget_show (WGET ("bt_page_information_dialog_export_csv")); else gtk_widget_hide (WGET ("bt_page_information_dialog_export_csv")); } void on_bt_suspend_progress_dialog_clicked (GtkButton * button, gpointer user_data) { uc_check_suspend_continue (); } void on_view_bad_extensions_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_view_bad_extensions_dialog_show (); } void on_view_similar_links_locations_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_view_similar_links_dialog_show (); } void on_view_online_activate (GtkMenuItem * menuitem, gpointer user_data) { UCLinkProperties *prop = NULL; gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) { prop = uc_lists_checked_links_lookup_by_uid (id); uc_application_launch_web_browser (prop->url); } else uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); } void on_page_properties_activate (GtkMenuItem * menuitem, gpointer user_data) { gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) uc_application_page_information_dialog_show (); else uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); } void on_view_parent_page_online_activate (GtkMenuItem * menuitem, gpointer user_data) { UCLinkProperties *prop = NULL; gchar *parent_url = NULL; gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) { prop = uc_lists_checked_links_lookup_by_uid (id); parent_url = (prop->parent) ? (prop->parent)->url : uc_project_get_url (); uc_application_launch_web_browser (parent_url); } else uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); } void on_bt_add_filter_directory_clicked (GtkButton * button, gpointer user_data) { uc_application_add_filter_directory_add (); } void on_bt_add_filter_domain_clicked (GtkButton * button, gpointer user_data) { uc_application_add_filter_domain_add (); } void on_bt_remove_filter_domain_clicked (GtkButton * button, gpointer user_data) { uc_application_add_filter_domain_remove (); } void on_bt_remove_filter_directory_clicked (GtkButton * button, gpointer user_data) { uc_application_add_filter_directory_remove (); } void on_bt_clear_filter_directory_clicked (GtkButton * button, gpointer user_data) { gtk_list_store_clear (treestore_filter_directories); } void on_bt_clear_filter_domain_clicked (GtkButton * button, gpointer user_data) { gtk_list_store_clear (treestore_filter_domains); } void on_check_email_address_clicked (GtkButton * button, gpointer user_data) { GtkWidget *widget1 = NULL; GtkWidget *widget2 = NULL; gboolean active = FALSE; widget1 = WGET ("sd_check_email_address"); widget2 = WGET ("sd_check_email_mx"); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget1)); if (!active) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget2), FALSE); WSENS ("sd_check_email_mx", active); } void on_menu_check_email_mx_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_check_mx_is_valid (); } void on_image_preview_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_view_image_dialog_show (); } void on_dynamic_values_time_between_value_changed (GtkSpinButton * spinbutton, gpointer user_data) { GtkWidget *widget = NULL; widget = WGET ("pd_dynamic_values_time_between"); uc_project_set_check_wait (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); } void on_dynamic_values_security_checks_value_toggled (GtkToggleButton * togglebutton, gpointer user_data) { GtkWidget *widget = NULL; widget = WGET ("pd_dynamic_values_security_checks"); uc_project_set_security_checks ("any", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } void on_dynamic_values_timeout_value_changed (GtkSpinButton * spinbutton, gpointer user_data) { GtkWidget *widget = NULL; widget = WGET ("pd_dynamic_values_timeout"); uc_project_set_check_timeout (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))); } void on_search_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_new_search_dialog_show (); } void on_new_search_button_clicked (GtkButton * button, gpointer user_data) { uc_application_search_get_data (); } void on_clear_project_history_clicked (GtkButton * button, gpointer user_data) { gnome_entry_clear_history ( GNOME_ENTRY (gnome_entry_new ("web_project"))); gnome_entry_clear_history ( GNOME_ENTRY (gnome_entry_new ("bookmarks_project"))); gnome_entry_clear_history ( GNOME_ENTRY (gnome_entry_new ("local_file_project"))); } void on_clear_search_history_clicked (GtkButton * button, gpointer user_data) { gnome_entry_clear_history (GNOME_ENTRY (gnome_entry_new ("search"))); } void on_clear_export_history_clicked (GtkButton * button, gpointer user_data) { gnome_entry_clear_history (GNOME_ENTRY (gnome_entry_new ("export_path"))); } void on_new_search_check_button_toggled (GtkToggleButton * togglebutton, gpointer user_data) { uc_search_check_verification (); } void on_web_site_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_new_web_dialog_show (); } void on_local_file_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_new_local_file_dialog_show (); } void on_bookmarks_file_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_new_bookmarks_dialog_show (); } void on_bt_ok_new_bookmarks_project_clicked (GtkButton * button, gpointer user_data) { static gboolean running = FALSE; if (!running) { running = TRUE; uc_application_get_bookmarks_project_data (); running = FALSE; } } void on_delete_all_bad_links_activate (GtkMenuItem * menuitem, gpointer user_data) { gint res = 0; res = uc_application_dialog_yes_no_show ( _("All bookmarks referring to not found page will be removed.\n" "Do you want to continue?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return; uc_application_main_tree_display_all (); gtk_tree_view_expand_all (treeview); uc_bookmarks_delete_bad_links (uc_lists_checked_links_get ()); uc_project_set_save_bookmarks (TRUE); uc_application_main_tree_display_all (); gtk_tree_view_expand_all (treeview); } void on_delete_link_activate (GtkMenuItem * menuitem, gpointer user_data) { gint32 id = 0; gint res = 0; GtkTreeIter iter; UCLinkProperties *prop = NULL; id = uc_check_treeview_get_selected_row_id (); if (id > 0) { res = uc_application_dialog_yes_no_show ( _("Selected link will be removed.\n" "Do you want to continue?"), GTK_MESSAGE_QUESTION); if (res != GTK_RESPONSE_YES) return; uc_application_treeview_get_selected_iter (treeview, &iter); prop = uc_lists_checked_links_lookup_by_uid (id); uc_bookmarks_delete_link (prop); uc_project_set_save_bookmarks (TRUE); gtk_tree_store_remove (treestore, &iter); } else uc_application_dialog_show ( _("Please, select a item."), GTK_MESSAGE_WARNING); } void on_save_bookmarks_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_bookmarks_save_changes (); } void on_save_project_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_project_save (); } void on_open_project_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_application_open_project_dialog_show (); } void on_project_properties_activate (GtkMenuItem * menuitem, gpointer user_data) { (gboolean) uc_application_project_information_dialog_show (); } void on_menu_refresh_all_activate (GtkMenuItem * menuitem, gpointer user_data) { // FIXME if (uc_project_get_check_is_bookmarks ()) g_warning ("function not yet implemented!"); else uc_web_site_refresh_all (); } void on_menu_refresh_branch_activate (GtkMenuItem * menuitem, gpointer user_data) { gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) uc_web_site_refresh_branch (id); else uc_application_dialog_show (_("Please, select a item."), GTK_MESSAGE_WARNING); } void on_menu_refresh_link_activate (GtkMenuItem * menuitem, gpointer user_data) { gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) uc_web_site_refresh_link (id); else uc_application_dialog_show (_("Please, select a item."), GTK_MESSAGE_WARNING); } void on_bt_close_open_project_clicked (GtkButton * button, gpointer user_data) { gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET (button))); uc_application_set_status_bar (0, ""); } void on_bt_ok_open_project_clicked (GtkButton * button, gpointer user_data) { gint32 id = 0; id = uc_project_treeview_get_selected_row_id (); if (id > 0) { gtk_widget_hide (gtk_widget_get_toplevel (GTK_WIDGET (button))); uc_project_open (id); } else uc_application_dialog_show (_("Please, select a project."), GTK_MESSAGE_WARNING); } void on_bt_delete_open_project_clicked (GtkButton * button, gpointer user_data) { gint32 id = 0; id = uc_project_treeview_get_selected_row_id (); if (id > 0) { if (uc_application_dialog_yes_no_show (_("Are you sure you want to delete " "this project?"), GTK_MESSAGE_QUESTION) == GTK_RESPONSE_YES) uc_project_delete (id); } else uc_application_dialog_show (_("Please, select a project."), GTK_MESSAGE_WARNING); } void on_bt_ok_new_web_project_clicked (GtkButton * button, gpointer user_data) { uc_application_project_get_data (UC_PROJECT_TYPE_WEB_SITE); } void on_bt_ok_new_local_file_project_clicked (GtkButton * button, gpointer user_data) { uc_application_project_get_data (UC_PROJECT_TYPE_LOCAL_FILE); } gboolean on_main_window_delete_event (GtkWidget * widget, GdkEvent * event, gpointer user_data) { if (!uc_application_quit ()) gtk_exit (0); return TRUE; } gboolean on_main_treeview_motion_notify_event (GtkWidget * widget, GdkEventButton * event, gpointer data) { uc_tooltips_main_set_mouse_coord (event->x, event->y); return FALSE; } /** * on_main_treeview_enter_notify_event: * @widget: Widget. * @event: Event. * @user_data: Nothing. * * When mouse enter in the tree view zone. Mainly used by main tree view * tooltips. * * Returns: Always FALSE. */ gboolean on_main_treeview_enter_notify_event (GtkWidget * widget, GdkEventCrossing * event, gpointer user_data) { uc_tooltips_main_set_frozen (FALSE); return FALSE; } /** * on_main_treeview_leave_notify_event: * @widget: Widget. * @event: Event. * @user_data: Noting. * * When mouse leace the tree view zone. Mainly used by main tree view * tooltips. * * Returns: Always FALSE. */ gboolean on_main_treeview_leave_notify_event (GtkWidget * widget, GdkEventCrossing * event, gpointer user_data) { uc_tooltips_main_set_frozen (TRUE); if (uc_tooltips_main_get_active ()) { uc_tooltips_main_set_active (FALSE); uc_tooltips_main_destroy (); } return FALSE; } void on_display_tooltips_toggled (GtkToggleButton * togglebutton, gpointer user_data) { uc_tooltips_main_set_display (gtk_toggle_button_get_active (togglebutton)); } void on_delete_project_activate (GtkMenuItem * menuitem, gpointer user_data) { if (uc_application_dialog_yes_no_show (_("Are you sure you want to delete this project?"), GTK_MESSAGE_QUESTION) == GTK_RESPONSE_YES) uc_project_delete (uc_project_get_id ()); } void on_menu_refresh_parent_activate (GtkMenuItem * menuitem, gpointer user_data) { gint32 id = 0; id = uc_check_treeview_get_selected_row_id (); if (id > 0) uc_web_site_refresh_parent (id); else uc_application_dialog_show (_ ("Please, select a item."), GTK_MESSAGE_WARNING); } void on_menu_refresh_main_page_activate (GtkMenuItem * menuitem, gpointer user_data) { uc_web_site_refresh_link (uc_check_get_main_page_id ()); } gurlchecker-0.13.1/src/getopt1.c0000644000175000017500000001070011275575425013344 00000000000000/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include #endif #include "getopt.h" #if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* Not ELIDE_CODE. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ gurlchecker-0.13.1/src/ucclam.c0000644000175000017500000000570111524253746013226 00000000000000/* * Copyright (C) 2002-2011 * Emmanuel Saracco * * 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. */ #ifdef ENABLE_CLAMAV #include "ucclam.h" #include "utils.h" UCClam * uc_ucclam_new (gchar **error) { gint ret; UCClam *clam = NULL; clam = g_new0 (UCClam, 1); clam->virname = NULL; clam->size = 0; // Do not call cl_init() twice if (!uc_init_clamav_done && (ret = cl_init (CL_INIT_DEFAULT)) != CL_SUCCESS) { if (error != NULL) *error = g_strdup_printf ("cl_init() error: %s", (gchar *) cl_strerror (ret)); uc_ucclam_free (&clam); return NULL; } uc_init_clamav_done = TRUE; if (!(clam->engine = cl_engine_new ())) { if (error != NULL) *error = g_strdup ("cl_engine_new() error"); uc_ucclam_free (&clam); return NULL; } if ((ret = cl_load (cl_retdbdir (), clam->engine, &clam->sigs, CL_DB_STDOPT)) != CL_SUCCESS) { if (error != NULL) *error = g_strdup_printf ("cl_load(%s) error: %s", cl_retdbdir (), (gchar *) cl_strerror (ret)); uc_ucclam_free (&clam); return NULL; } if ((ret = cl_engine_compile (clam->engine)) != CL_SUCCESS) { if (error != NULL) *error = g_strdup_printf ("cl_compile() error: %s", (gchar *) cl_strerror (ret)); uc_ucclam_free (&clam); return NULL; } return clam; } gboolean uc_ucclam_scan (UCClam * clam, const gchar * path, gchar ** virname) { gint fd = 0; gboolean ret = FALSE; if ((fd = open (path, O_RDONLY)) == -1) { g_warning ("Can't open file \"%s\" to scan it for virii!", path); return FALSE; } clam->virname = path; uc_utils_debug ("[SECURITY] Scanning %s for virii...\n", (path)?path:""); if ((ret = cl_scandesc (fd, &clam->virname, &clam->size, clam->engine, CL_SCAN_STDOPT) == CL_VIRUS)) { *virname = g_strdup (clam->virname); uc_utils_debug ("[SECURITY]\tVirus found here!\n"); } close (fd); return (ret == CL_VIRUS); } void uc_ucclam_free (UCClam ** clam) { if (!clam) return; if ((*clam)->engine) cl_engine_free ((*clam)->engine), (*clam)->engine = NULL; g_free (*clam), *clam = NULL; } #endif gurlchecker-0.13.1/src/html_parser.c0000644000175000017500000003731011327772420014277 00000000000000/* * Copyright (C) 2002-2010 * Emmanuel Saracco * * 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. */ #include "utils.h" #include "application.h" #include "check.h" #include "project.h" #include "html_parser.h" #define UC_HTML_PARSER_WHILE_CONDITION \ ( \ !uc_check_cancel_get_value () && \ !uc_check_ignore_item_get_value () \ ) static gchar *href_base = NULL; static gboolean uc_html_parser_authorized_tag_name (const gchar * name); static gchar *uc_html_parser_add_base (const gchar * base, const gchar * url); static GList *uc_html_parser_parse (GList * tags, htmlNodePtr cur); static UCLinkType uc_html_parser_get_tag_type (htmlNodePtr cur); static gchar *uc_html_parser_get_tag_label (htmlNodePtr cur); static gchar *uc_html_parser_get_tag_value (htmlNodePtr cur, UCLinkType type); static GList *uc_html_parser_parse (GList * tags, htmlNodePtr cur); static gchar *uc_html_parser_clean_string (gchar * str); /** * uc_html_parser_authorized_tag_name: * @name: Tag to check. * * Check if a given tag must be proceed or not. * * Returns: TRUE if the given name is usefull for us. */ static gboolean uc_html_parser_authorized_tag_name (const gchar * name) { return (name != NULL && (!g_ascii_strcasecmp (name, "IMG") || !g_ascii_strcasecmp (name, "A") || !g_ascii_strcasecmp (name, "AREA") || !g_ascii_strcasecmp (name, "BASE") || !g_ascii_strcasecmp (name, "META") || !g_ascii_strcasecmp (name, "LINK") || !g_ascii_strcasecmp (name, "FRAME") || !g_ascii_strcasecmp (name, "IFRAME"))); } /** * uc_html_parser_get_tags: * @buffer_orig: Buffer containing HTML code to proceed. * * Parse the given buffer to extract HTML tags. * * See: uc_css_parser_get_tags () * * Returns: A #GList of #UCHTMLTag. */ GList * uc_html_parser_get_tags (gchar * buffer_orig) { GList *tags = NULL; gchar *buffer = NULL; htmlParserCtxtPtr ctxt = NULL; uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Parsing HTML code...")); UC_UPDATE_UI; if (!(buffer = uc_utils_replace (buffer_orig, "&", "&"))) return NULL; if ((ctxt = htmlCreateMemoryParserCtxt (buffer, strlen (buffer)))) { htmlCtxtUseOptions (ctxt, HTML_PARSE_NOWARNING | HTML_PARSE_NOERROR); htmlParseDocument (ctxt); tags = uc_html_parser_parse (tags, ctxt->myDoc->children); g_free (href_base), href_base = NULL; xmlFreeDoc (ctxt->myDoc), ctxt->myDoc = NULL; htmlFreeParserCtxt (ctxt), ctxt = NULL; } else g_warning ("Problem with htmlCreateMemoryParserCtxt ()"); g_free (buffer), buffer = NULL; return tags; } /** * uc_css_parser_get_tags: * @buffer_orig: a buffer with CSS file content. * * Parse the buffer for some CSS instructions. For the moment, only * "import" and "url" instructions are interesting for us. * * See: uc_html_parser_get_tags () * * Returns: A #GList of CSS properties (#UCHTMLTag). */ GList * uc_css_parser_get_tags (gchar * buffer_orig) { GList *tags = NULL; gchar *ext = NULL; gchar *tmp = NULL; gchar *buffer = buffer_orig; uc_application_display_state_message (UC_CHECK_MESSAGE_LABEL_THIRD, _("Parsing CSS code...")); UC_UPDATE_UI; while (*buffer != '\0' && (buffer = strpbrk (buffer, "@uU")) != NULL) { gchar *url = NULL; const gchar *b = NULL; const gchar *e = NULL; UCLinkType link_type = LINK_TYPE_NONE; /* "import" tag */ if (uc_utils_memcasecmp (buffer, "@import")) { b = (buffer += 8); if ((b = uc_utils_strpbrk_or_eos (b, "('\"")) != NULL); { do b++; while (*b == ' ' || *b == '\'' || *b == '"'); if ((e = uc_utils_strpbrk_or_eos (b, "'\";) ")) != NULL) { tmp = uc_utils_strdup_delim (b, e); url = uc_utils_clean_tag_link_value (tmp); g_free (tmp), tmp = NULL; /* file must have a extension */ if ((ext = strrchr (url, '.')) != NULL) link_type = LINK_TYPE_CSS; } } } /* "url" tag */ else if (uc_utils_memcasecmp (buffer, "url")) { b = (buffer += 4); /* we do not want "url*s*" tag */ if ((!g_ascii_isalpha (*(b - 5))) && (!g_ascii_isalpha (*(b - 1))) && (e = strchr (b, ')')) != NULL) { tmp = uc_utils_strdup_delim (b, e); url = uc_utils_clean_tag_link_value (tmp); g_free (tmp), tmp = NULL; /* file must have a extension */ if ((ext = strrchr (url, '.')) != NULL) link_type = (!strncasecmp (".css", ext, 3)) ? LINK_TYPE_CSS : (!strncasecmp (url, UC_PROTOCOL_FILE, strlen (UC_PROTOCOL_FILE) - 1)) ? LINK_TYPE_FILE_IMAGE : LINK_TYPE_IMAGE; } } if (link_type != LINK_TYPE_NONE) { UCHTMLTag *tag = NULL; g_strstrip (url); tag = uc_html_parser_node_new (); tag->type = link_type; tag->label = g_strdup (""); tag->value = g_strdup (url); tags = g_list_append (tags, tag); } g_free (url), url = NULL; if (*buffer != '\0') buffer++; } return tags; } /** * uc_html_parser_get_tag_type: * @cur: XML cursor pointer. * * Proceed a HTML tag to see its type. * * Returns: #UCLinkType of the HTML tag. */ static UCLinkType uc_html_parser_get_tag_type (htmlNodePtr cur) { xmlAttrPtr attr = NULL; UCLinkType ret = LINK_TYPE_NONE; /* BASE */ if (!g_ascii_strcasecmp ((gchar *) cur->name, "BASE")) ret = LINK_TYPE_BASE_HREF; /* META */ else if (!g_ascii_strcasecmp ((gchar *) cur->name, "META")) ret = LINK_TYPE_META; /* (IMG) -> "SRC" */ else if (!g_ascii_strcasecmp ((gchar *) cur->name, "IMG")) { attr = cur->properties; while (attr != NULL && ret == LINK_TYPE_NONE) { if (attr->name != NULL && !g_ascii_strcasecmp ((gchar *) attr->name, "SRC") && attr->children != NULL && attr->children->content != NULL) { ret = (uc_utils_memcasecmp ((gchar *) attr->children->content, "FILE:")) ? LINK_TYPE_FILE_IMAGE : LINK_TYPE_IMAGE; } attr = attr->next; } } /* (LINK) -> (REL) -> "stylesheet" */ else if (!g_ascii_strcasecmp ((gchar *) cur->name, "LINK")) { attr = cur->properties; while (attr != NULL && ret == LINK_TYPE_NONE) { if (attr->name != NULL && !g_ascii_strcasecmp ((gchar *) attr->name, "REL") && attr->children != NULL && attr->children->content != NULL && uc_utils_memcasecmp ((gchar *) attr->children->content, "stylesheet")) ret = LINK_TYPE_CSS; attr = attr->next; } } /* (A or AREA) -> (HREF) -> "MAILTO:" "FILE:" */ else if (!g_ascii_strcasecmp ((gchar *) cur->name, "A") || !g_ascii_strcasecmp ((gchar *) cur->name, "AREA")) { attr = cur->properties; while (attr != NULL && ret == LINK_TYPE_NONE) { if (attr->name != NULL && !g_ascii_strcasecmp ((gchar *) attr->name, "HREF") && attr->children != NULL && attr->children->content != NULL) { if (uc_utils_memcasecmp ((gchar *) attr->children->content, "MAILTO:")) ret = LINK_TYPE_EMAIL; else if (uc_utils_memcasecmp ((gchar *) attr->children->content, "FILE:")) ret = LINK_TYPE_FILE_HREF; else ret = LINK_TYPE_HREF; } attr = attr->next; } } /* FRAME or IFRAME */ else if (!g_ascii_strcasecmp ((gchar *) cur->name, "FRAME") || !g_ascii_strcasecmp ((gchar *) cur->name, "IFRAME")) ret = LINK_TYPE_FRAME; return ret; } /** * uc_html_parser_get_tag_imbricated_label: * @cur: XML cursor pointer. * @ret: A pointer that will point on the tag label. * * This function is called when tag label contain HTML tags. * It fill the @ret argument with the label of the given tag, without HTML * tags. @ret will point on a new allocated string. */ static void uc_html_parser_get_tag_imbricated_label (htmlNodePtr cur, gchar ** ret) { while (cur != NULL) { if (cur->name != NULL && !g_ascii_strcasecmp ((gchar *) cur->name, "text") && cur->content != NULL) { if (*ret == NULL) *ret = g_strdup ((gchar *) cur->content); else { gchar *sav = NULL; sav = g_strdup_printf ("%s %s", *ret, cur->content); g_free (*ret), *ret = NULL; *ret = sav; } } if (cur->children != NULL) uc_html_parser_get_tag_imbricated_label (cur->children, &(*ret)); cur = cur->next; } } /** * uc_html_parser_get_tag_label: * @cur: XML cursor pointer. * * Proceed a given HTML tag to extract its label. If label contain * other HTML tags, those are deleted. * * See: uc_html_parser_get_tag_imbricated_label(), * uc_html_parser_get_tag_value() * * Returns: Label of the tag. */ static gchar * uc_html_parser_get_tag_label (htmlNodePtr cur) { gchar *ret = NULL; xmlAttrPtr attr = NULL; if (cur->children != NULL) { gchar *tmp = NULL; uc_html_parser_get_tag_imbricated_label (cur->children, &tmp); if (tmp != NULL) { ret = uc_utils_to_utf8 (tmp); g_free (tmp), tmp = NULL; } } else { attr = cur->properties; while (attr != NULL && ret == NULL) { if (attr->name != NULL && attr->children != NULL && (!g_ascii_strcasecmp ((gchar *) attr->name, "TITLE") || !g_ascii_strcasecmp ((gchar *) attr->name, "ALT") || !g_ascii_strcasecmp ((gchar *) attr->name, "NAME") || !g_ascii_strcasecmp ((gchar *) attr->name, "HTTP-EQUIV"))) ret = uc_utils_to_utf8 ((gchar *) attr->children->content); attr = attr->next; } } if (ret == NULL) ret = g_strdup (""); else { gchar *tmp = NULL; tmp = uc_html_parser_clean_string (ret); g_free (ret), ret = NULL; ret = tmp; } return ret; } /** * uc_html_parser_get_tag_value: * @cur: XML cursor pointer. * @type: Tag type. * * Proceed a given tag to extract its value. * * See: uc_html_parser_get_tag_label() * * Returns: The value of the tag. */ static gchar * uc_html_parser_get_tag_value (htmlNodePtr cur, UCLinkType type) { xmlAttrPtr attr = NULL; gchar *p = NULL; gchar *ret = NULL; switch (type) { case LINK_TYPE_IMAGE: case LINK_TYPE_FILE_IMAGE: case LINK_TYPE_FRAME: case LINK_TYPE_EMAIL: case LINK_TYPE_BASE_HREF: case LINK_TYPE_FILE_HREF: case LINK_TYPE_HREF: case LINK_TYPE_CSS: attr = cur->properties; while (attr != NULL && ret == NULL) { if (attr->name != NULL && !g_ascii_strcasecmp ((gchar *) attr->name, "RECTANGLE")) { if ((p = strrchr ((char *) attr->children->content, ')'))) ret = uc_utils_to_utf8 (++p), g_strstrip (ret); else ret = uc_utils_to_utf8 ((gchar *) attr->children->content); } else if (attr->name != NULL && (!g_ascii_strcasecmp ((gchar *) attr->name, "HREF") || !g_ascii_strcasecmp ((gchar *) attr->name, "SRC")) && attr->children != NULL && attr->children->content != NULL) { ret = uc_utils_to_utf8 ((gchar *) attr->children->content); } attr = attr->next; } break; case LINK_TYPE_META: attr = cur->properties; while (attr != NULL && ret == NULL) { if (attr->name != NULL && !g_ascii_strcasecmp ((gchar *) attr->name, "CONTENT") && attr->children != NULL && attr->children->content != NULL) ret = uc_utils_to_utf8 ((gchar *) attr->children->content); attr = attr->next; } break; default: ; } if (ret == NULL) ret = g_strdup (""); else { gchar *tmp = NULL; tmp = uc_html_parser_clean_string (ret); g_free (ret), ret = NULL; ret = tmp; } return ret; } static gchar * uc_html_parser_clean_string (gchar * str) { GString *clean = NULL; const gchar *p = NULL; gchar *ret = NULL; clean = g_string_new (""); for (p = str; *str; str++) if (!strchr ("\n\r\t", *str)) g_string_append_c (clean, *str); ret = clean->str; g_strstrip (ret); g_string_free (clean, FALSE), clean = NULL; return ret; } /** * uc_html_parser_parse: * @tags: #GList of #UCHTMLTag items. * @cur: XML cursor pointer. * * Parse a given XML structure to extract HTML tags. * * Returns: A #GList of #UCHTMLTag. */ static GList * uc_html_parser_parse (GList * tags, htmlNodePtr cur) { gchar *tmp = NULL; while (cur != NULL && UC_HTML_PARSER_WHILE_CONDITION) { if (cur->type == XML_ELEMENT_NODE && cur->name != NULL && uc_html_parser_authorized_tag_name ((gchar *) cur->name)) { UCHTMLTag *tag = NULL; tag = uc_html_parser_node_new (); tag->type = uc_html_parser_get_tag_type (cur); /* label */ tag->label = uc_html_parser_get_tag_label (cur); /* value */ tag->value = uc_html_parser_get_tag_value (cur, tag->type); /* type correction: if it is a mailto: on a img rectangle attribut */ if (uc_utils_memcasecmp (tmp, "MAILTO:")) tag->type = LINK_TYPE_EMAIL; switch (tag->type) { case LINK_TYPE_META: case LINK_TYPE_EMAIL: case LINK_TYPE_FILE_HREF: break; case LINK_TYPE_BASE_HREF: if (href_base == NULL) { href_base = g_strdup (tag->value); if (strlen (href_base) >= 2 && (href_base)[strlen (href_base) - 1] == '/' && (href_base)[strlen (href_base) - 2] == '/') (href_base)[strlen (href_base) - 1] = '\0'; } break; default: tmp = uc_html_parser_add_base (href_base, tag->value); g_free (tag->value), tag->value = NULL; tag->value = uc_utils_to_utf8 (tmp); g_free (tmp), tmp = NULL; } if (tag->type != LINK_TYPE_BASE_HREF) tags = g_list_append (tags, tag); else { g_free (tag->label), tag->label = NULL; g_free (tag->value), tag->value = NULL; g_free (tag), tag = NULL; } } if (cur->children) tags = uc_html_parser_parse (tags, cur->children); cur = cur->next; } return tags; } /** * uc_html_parser_add_base: * @base: HTML base tag to add. * @url: URL for base tag concatenation. * * Add the base tag value to the link if necessary. * * Returns: A new allocated string with new URL. */ static gchar * uc_html_parser_add_base (const gchar * base, const gchar * url) { gchar *path = NULL; gchar *file = NULL; gchar *new = NULL; path = g_strdup (base); if (path == NULL || url == NULL || strstr (url, "://") != NULL || (file = strrchr (path, '/')) == NULL || url[0] == '/') { g_free (path), path = NULL; return g_strdup (url); } if (*(file - 1) == '/') file = NULL; else *(file++) = '\0'; if (path[strlen (path) - 1] == '/') path[strlen (path) - 1] = '\0'; new = (!strchr ("?#", url[0])) ? g_strconcat (path, ((url[0] != '/') ? "/" : ""), url, NULL) : g_strconcat (path, "/", file, url, NULL); g_free (path), path = NULL; return new; } /** * uc_html_parser_node_new: * * Create a new tag list node. * * Returns: A new allocated #UCHTMLTag node. */ UCHTMLTag * uc_html_parser_node_new (void) { UCHTMLTag *item = NULL; item = g_new0 (UCHTMLTag, 1); item->depth = 0; item->label = NULL; item->value = NULL; item->type = LINK_TYPE_NONE; return item; } void uc_html_parser_node_free (UCHTMLTag **tag) { g_free ((*tag)->label), (*tag)->label = NULL; g_free ((*tag)->value), (*tag)->value = NULL; g_free ((*tag)), (*tag) = NULL; } gurlchecker-0.13.1/mkinstalldirs0000755000175000017500000000672211530645266013640 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec 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. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gurlchecker-0.13.1/COPYING0000644000175000017500000004311010744343152012050 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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. gurlchecker-0.13.1/intltool-merge.in0000644000175000017500000000000011530645257014302 00000000000000gurlchecker-0.13.1/NEWS0000644000175000017500000000413210744343152011515 00000000000000* 2005-08-16 (v0.9.0) - Thanks to Cyril Brulebois, gurlchecker now have a Debian repository. * 2004-12-31 (v0.8.0) - v0.8.0 of gurlchecker * 2004-09-29 (v0.7.17) - Added Stephane Loeuillet as co-developer. * 2004-05-15 (v0.7.11) - Now gURLChecker is completly hosted on LE Labs (will be removed from savannah soon). * 2004-03-08 (v0.7.9) - Angelo Theodorou maintain the Italian translation. * 2004-01-27 (v0.7.7) - Begun code documentation with gtk-doc. * 2004-01-08 (v0.7.6) - gURLChecker is ok on gnome-2.5 dev. * 2004-01-07 (v0.7.6) - We now use libxml2 HTML parser instead of our selfmade one. * 2003-10-07 (v0.7.1) - Alexander Hunziker maintain the german translation. * 2003-09-01 (v0.6.0) - v0.6.0 of gURLChecker * 2003-07-08 (v0.5.3) - Koop Mast now maintain FreeBSD package. * 2003-07-07 (v0.5.3) - Gunner Poulsen maintain the danish translation. * 2003-06-24 (0.5.2) - Jan Henrik Helmers made urls treeview icons and gURLChecker logo. * 2003-06-01 (0.5.0) - Koop Mast made a patch for FreeBSD port. * 2003-05-08 (v0.3.13) - Florent Jugla maintain the esperanto translation. * 2003-04-15 (v0.3.6) - Daniel Pecos wrote the manpage. * 2003-04-08 (v0.3.5-3) - Daniel Pecos maintain the spanish translation. - Takeshi Aihana maintain the japanese translation. * 2003-04-03 (v0.3.5-3) - Dag Wieers now maintain a RPM repository for gURLChecker. - Daniel Pecos Martnez intend to package gURLChecker for Debian. * 2003-03-28 (v0.3-5) - gURLChecker have been frozen. * 2003-03-11 (v0.3) - v0.3 of gURLChecker. * 2003-03-03 (v0.2) - v0.2 of gURLChecker. * 2003-02-13 - gURLChecker has been announced on freshmeat web site and a project has been created. * 2003-02-12 (v0.1) - vO.1 of gURLChecker. * 2002-11-20 - gURLChecker now use libglade. * 2002-10-21 - gURLChecker is now hosted on https://savannah.nongnu.org/projects/gurlchecker/. gurlchecker-0.13.1/ChangeLog0000644000175000017500000016745711530643600012607 000000000000002011-02-22 Emmanuel Saracco * Version: 0.13.1 2011-02-08 Emmanuel Saracco * ClamAV: - Fixed a problem with libclamav6 >= 0.96 (do not call cl_init() twice). * Configuration: - Fixed want_*_path detection for LDFLAGS. - Fixed yes/no logic in configuration. * Other: - Fixed a build problem with po. 2011-01-31 Emmanuel Saracco * HTTP: - Fixed a bug in header request. 2010-03-28 Emmanuel Saracco * Other: - Several minor fixes (thanks to Daniel Leidert). 2010-03-10 Emmanuel Saracco * Export: - Added option to export IP address. 2010-03-08 Emmanuel Saracco * Export: - Added option to export only external links. 2010-02-14 Emmanuel Saracco * Croco: - Fixed a memory leak. * Tidy: - Fixed a memory leak. * ClamAV: - Display more user friendly message during libclamav init step. - Fixed a memory leak. 2010-02-13 Emmanuel Saracco * Version: 0.13 * Bookmarks check: - Fixed a problem with remote bookmarks file handling. 2010-02-09 Emmanuel Saracco * Bookmarks check: - Now remove XML node using the right way. - Code reorganisation, and cleaning. 2010-02-07 Emmanuel Saracco * Bookmarks check: - Added support for Opera bookmarks check. 2010-02-06 Emmanuel Saracco * Bookmarks check: - Added support for Google Chrome bookmarks check. 2010-02-06 Emmanuel Saracco * Version: 0.12.1 * GUI: - Avoid using gtk_widget_set_visible() function to preserve Gtk+ < 2.18 compatibility. 2010-01-30 Emmanuel Saracco * Version: 0.12 * GUI: - Fixed a problem with software license in about dialog. - Force all dialogs to be centered. 2010-01-29 Emmanuel Saracco * GUI: - Better management when gurlchecker have been built without SSL support. 2010-01-28 Emmanuel Saracco * GUI: - Fixed a problem with main window reactivation after a suspended scan. * Network: - Fixed a HTTP header detection bug in SSL mode. - Rewrote connect_thread function to avoid use of deprecated gethostbyname() function. By the way, it fixed a connection freeze problem when a lot of links were ignored by the end user. * Other: - Code cleaning. 2010-01-27 Emmanuel Saracco * GUI: - More coherent GUI for scan check options management. * URL parser: - Scan speed optimization. - Fixed a problem with chrooted scan. * Other: - Removed free disk space check during the scan. It must be done by the system instead. - Memory leaks fixes. 2010-01-26 Emmanuel Saracco * URL parser: - Fixed a problem with HTTP and META refresh redirection. * Cookies: - Fixed logic and GUI problems. * Other: - Some fixes on signal connections. - Memory leaks fixes. - Code cleaning. 2010-01-25 Emmanuel Saracco * Other: - Code cleaning and memory leak fixes. 2010-01-24 Emmanuel Saracco * URL parser: - Fixed a problem with HTTP redirection. * Bookmarks check: - Fixed a problem with local files detection. * Security check: - Now available for bookmarks projects too. * GUI: - Fixed "Save" project needed detection to be more coherent. - Added FILE in protocol filters. - Rewrote display filters event handlers to prevent submenu closure. when a checkbox is toggled. * Other: - Fixed some problems with debug mode. 2010-01-23 Emmanuel Saracco * GUI: - Now display filters are cumulatives. 2010-01-22 Emmanuel Saracco * Security check: - Should be more efficient now. * GUI: - Fixed some problem whith link refresh. - All page extensions now can be manage by user. Closed #1837 task (Some GUI improvement request). * Bookmarks check: - Do not display empty folders. - Ask confirmation before deleting a link. * Other: - Fixed a problem with system Web browser call. 2010-01-21 Emmanuel Saracco * Bookmarks check: - Added massive delete of all links not found for bookmarks project (#2028 task). 2010-01-20 Emmanuel Saracco * Bookmarks check: - Now bookmarks from Firefox sqlite3 database can be checked, and deletions can be applied. 2010-01-19 Emmanuel Saracco * Bookmarks check: - WIP: First step on the #2026 task (Check Firefox sqlite3 bookmarks database). 2010-01-15 Emmanuel Saracco * Export: - CSV export of page links from page information dialog. * GUI: - Some work for libglade new XML format compatibility. 2010-01-14 Emmanuel Saracco * Export: - CSV export reorganisation to be more consistent. * GUI: - Some main treeview popup fixes. * URL parser: - Added "aspx" extension. * Documentation: - Some work on code documentation. 2010-01-13 Emmanuel Saracco * Export: - Added CSV export feature for all project links. * GUI: - Some work for libglade new XML format compatibility. 2010-01-03 Emmanuel Saracco * Version: 0.11.2 - Fixed 2 translation bugs. 2009-11-08 Emmanuel Saracco * Version: 0.11.1 2009-11-07 Emmanuel Saracco * Cookies: - Do not bother end-user anymore with expiration warning. * Configuration: - Now use pkg-config to search for the gnutls library. - Fixed dist-all target for manpage inclusion. - Some cleaning. * GUI: - Fixed a bug with new project dialog (thanks to Ubuntu team). 2009-04-08 Emmanuel Saracco * Documentation: - We do not build manpage on the fly anymore. Now manpage is located in the root package directory ("gurlchecker.1"). 2009-04-05 Emmanuel Saracco * Export: - XSL enhancement to produce better HTML report. * Other: - Optimization. 2009-04-04 Emmanuel Saracco * Export: - Fixed a problem with XSL stylesheet. 2009-04-04 Emmanuel Saracco * Version: 0.11 * GUI: - Now you can associate custom user action label to each URL (task #653] Tag for action). 2009-04-02 Emmanuel Saracco * Search: - Added option for searching by HTTP status code. * ClamAV: - Now display virus name in page information frame. * HTML parser: - Fixed a bug in HTTP header status management. 2009-03-29 Emmanuel Saracco * ClamAV: - Fixed a compatibility problem with ClamAV >= 0.95. * HTML parser: - Rewrote a big part of the cookies management code. * ClamAV, URL parser: - Fixed bug #1784 ("gurlchecker doesn't find EICAR virus using libclamav5"). Warning: one must save its settings again before scanning for viruses. 2009-02-05 Emmanuel Saracco * URL parser: - Now check for file extension if content type check failed for detecting ClamAV scan candidate files. 2009-02-04 Emmanuel Saracco * ClamAV: - Fixed virus detection problem. * Other: - Fixed a content download error. 2008-06-11 Emmanuel Saracco * Other: - Fixed a segfault problem with settings validation. 2008-05-13 Emmanuel Saracco * ClamAV: - Fixed a compatibility problem with ClamAV >= 0.93. 2008-01-21 Emmanuel Saracco * Configuration: - Fixed issue with options enable/disable management. 2007-12-13 Emmanuel Saracco * Configuration: - Fixed a problem with libtidy. 2007-10-07 Emmanuel Saracco * GUI: - Fixed a problem with About dialog closure. * Other: - Fixed a protocole comparison bug. - Some documentation cleaning. 2007-05-13 Emmanuel Saracco * GUI: - Always use gtk_file_chooser_* instead of gtk_file_selection_*. 2007-05-08 Emmanuel Saracco * ClamAV: - Use libclamav2 cl_load() instead of cl_loaddbdir(). * HTTP: - Now corretly handle HTTP 303 (See Other) code. - Systematically use GET instead of HEAD to obtain header information. 2007-04-24 Emmanuel Saracco * HTML parser: - Bug #1565 (bad cookies handling) should be fixed now (thanks to Alexandre Fayolle). 2006-12-28 Emmanuel Saracco * GUI: - Some extra work on real time links status display during the check. * CSS parser: - Fixed a problem with URLs detection (thanks to Mark Pors). 2006-12-17 Emmanuel Saracco * GUI: - Use main window to show good/bad links in real time during the check (Task #359). 2006-12-11 Emmanuel Saracco * Other: - Code cleaning. 2006-06-27 Emmanuel Saracco * Configuration: - Applied 1 patch from Daniel Leidert. 2006-06-25 Emmanuel Saracco * GUI: - We now use GtkAboutDialog instead of GnomeAboutDialog. * Configuration: - Applied 2 patches from Daniel Leidert. - Added dependency on libgtk+ >= 2.6. - Some cleaning. 2006-05-28 Emmanuel Saracco * GUI: - Remove all GnomeCanvas code. - Fixed a bug when a project was deleted from within the "Open project" dialog. - Better handling of default extensions for options that need it. 2006-04-02 Emmanuel Saracco * Configuration: - Fixed some problems in optional libraries detection. 2005-11-26 Emmanuel Saracco * HTML parser: - Applied patch from anonymous. It fix the following problems: - with g_memdup in c_check_link_get_properties_proto_http (off by one copy leading to consecutive read overflows) - with htmlFreeParserCtxt in uc_html_parser_get_tags (read and write access to free'd zone) - with memcpy in uc_utils_string_cut (read overflow) leading to write overflow with strnca. * Configuration: - Fixed some problems in optional libraries detection. 2005-09-21 Emmanuel Saracco * GUI: - First attempt to implement GnomeCanvas view of pages relations. Just a test for the moment. 2005-09-04 Emmanuel Saracco * HTML_validator: - Bug #588 (HTML validator fails for UTF-8-encoded characters) should be fixed now. * Cookies: - Bug #589 ("Do not display" checkbox for cookies breaks if clicked twice) should be fixed now. 2005-08-31 Emmanuel Saracco * Packaging: - Removed 'debian/' directory from distribution tarball. 2005-08-27 Emmanuel Saracco * Version: 0.9.2 * Configuration: - Fixed problems in configure.in (thanks to Stephane Loeuillet). * Other: - Some headers renaming to avoid conflicts. 2005-08-27 Emmanuel Saracco * Version: 0.9.1 * HTML_parser: - CSS2 validation with libcroco should be ok now. 2005-08-26 Emmanuel Saracco * HTML_parser: - First attempt to implement CSS2 validation with libcroco. 2005-08-25 Emmanuel Saracco * GUI: - Fixed a bug with mouse click on empty tree view in the open project dialog. * URL_parser: - Fixed a bug in redirection handling. 2005-08-24 Emmanuel Saracco * Other: - Rewrote the whole libglade part. It should be cleaner and faster. But a lot of work still remain... 2005-08-23 Emmanuel Saracco * HTML_parser: - Task #165 (W3C validator) should be ok now for HTML. * GUI: - Main treeview tooltip relooking. * Other: - Debugging. 2005-08-22 Emmanuel Saracco * Configuration: - Added check for libtidy. Activation can be control with "--enable-tidy". Search path for libtidy can be set with "--with-tidy" option. * HTML_parser: - First steps to implement task #165 (W3C validator). * GUI: - Added a "W3C" notebook. 2005-08-21 Emmanuel Saracco * Configuration: - Added check for libclamav. Activation can be control with "--enable-clamav". Search path for libclamav can be set with "--with-clamav" option. * HTML_parser: - Task #368 (Check binaries and docs for viruses) should be ok now. Need to be seriously tested anyway :-) * GUI: - The project type is now displayed in the "page information" frame label. - Added a "Virii" subnotebook in the "Security" settings notebook. * Other: - Some debugging. - Some code cleaning. 2005-08-18 Emmanuel Saracco * Bookmarks_check: - Task #451 (Checking distant XBEL file) should be ok now. Need to be seriously tested. * HTML_parser: - Some debugging. 2005-08-18 Emmanuel Saracco * GUI: - Added a "Cancel" button to some dialog box, to permit a third choice and cancel current action. 2005-08-17 Emmanuel Saracco * GUI: - Some reorganization in settings notebooks. - Added security check activation in progress pop dynamics values section. * Security: - A lot of work on task #336 (Check for backup files). * Other: - Some debugging. 2005-08-16 Emmanuel Saracco * Cookies: - Task #458 (Cookies informations) should be ok now. - Some debugging in cookies popup. * Security: - Task #336 (Check for backup files) should be ok now. * GUI: - Some reorganization in settings notebooks. 2005-08-15 Emmanuel Saracco * Version: 0.9.0 * Export: - Task #166 (HTML export) should be ok now. 2005-08-14 Emmanuel Saracco * Export: - First attempt to make HTML report export possible. - New dependencie on xsltproc. * Bookmarks check: - Fixed a bug with konqueror's XBEL bookmarks file detection. 2005-07-10 Emmanuel Saracco * Packaging: - Updated debian package files (thanks to Daniel Leidert). * URL parser: - Fixed a problem with URL path ending with a dot (thanks to Benny Amorsen). 2005-05-22 Emmanuel Saracco * URL parser: - Task #367 (Some servers don't honor HTTP "HEAD" request) should be ok now. 2005-05-14 Emmanuel Saracco * Other: - Updated old unstable branch with current stable. Now we can take a look at the feature requests :-) 2005-02-09 Stephane LOEUILLET * doc/gurlchecker-sections.txt: - Fix doc build with gtk-doc 1.3 2005-01-05 Emmanuel Saracco * Other: - Applied patch for Solaris (thanks to Andreas Liebe). 2004-12-15 Emmanuel Saracco * URL parser: - A bug was fixed. Thanks to Georg Verweyen. 2004-12-12 Emmanuel Saracco * Version: 0.8rc6 2004-11-28 Emmanuel Saracco * configuration: - Added check for libgnutls version (>= 1.0) at configure time. 2004-11-18 Emmanuel Saracco * other: - Bug #376 (Problem with local files refresh process) should be fixed now. 2004-11-14 Emmanuel Saracco * other: - Correction of a memory leak in "uc_cache_change_id ()". - Some code cleaning. * network: - Fixed a problem with some FTP servers. 2004-11-13 Emmanuel Saracco * version: 0.8rc5 * URL parser: - Updated "uc_utils_split_email ()" (it is more restrictive now). * GUI: - Some fixes with history list of gnome entries. 2004-11-09 Emmanuel Saracco * GUI: - Added project's URL in about dialog. - Added a option "Prompt for authentication" in preferences. - Added a option "Do not display anymore" in authentication dialog. 2004-11-04 Emmanuel Saracco * version: 0.8rc4 2004-11-03 Emmanuel Saracco * GUI: - Task #361 (Display column headers of the URL list) is ok now. - Removed 2 unused functions: - uc_application_open_project_resize () - uc_application_resize () - Fixed a informations display problem with bookmarks projects. - Fixed a check options problem with local files projects. * URL parser: - Fixed bug #369 (Problem when URLs only ends with ".."). - Fixed a bug in anchors handling. - Fixed a problem with "mailto:" pseudo protocol with no E-Mail. * other: - Fixed a problem in "View online" feature. 2004-11-02 Emmanuel Saracco * HTML parser: - Fixed a huge memory leak! gurlchecker should not eat as much memory as before :-) 2004-11-01 Emmanuel Saracco * URL parser: - Fixed bug #364 (Problem with URLs decoding/encoding). We are now using code from wget instead of gnet to encode URLs, because libgnet seems to have a bug with latin1 characters. * HTML parser: - Fixed a problem with META refresh tags interpretation. - Fixed bug #366 (Problem with local files images identification). - Now local files are identified like "malformed URLs" when user chose to consider them as errors in preferences. - Some debugging and optimization. * cookies: - Now "expires" field should be correctly handled. Need more debugging however. * other: - Code cleaning. 2004-10-31 Emmanuel Saracco * GUI: - Task #360 (Display Page Properties in the Page Information area) is ok now. 2004-10-31 Emmanuel Saracco * version: 0.8rc3 * GUI: - Updated cookies preferences section. - Updated cookie warning dialog. 2004-10-30 Emmanuel Saracco * GUI: - Added 3 more options for managing cookies in the "Personnal data" notebook. - Added a dialog to warn user about cookies during the check. * other: - Some cookies management debugging. 2004-10-29 Emmanuel Saracco * other: - First attempt to manage cookies (Task #358 (Support for cookies or a way to filter out session id from URL)). It is important to close this task before the next 0.8.0 release because it is actually a problem for a lot of people. 2004-10-25 Emmanuel Saracco * search: - Bug #351 (Search problem with E-Mails and META tag targets) should be fixed now. 2004-10-19 Emmanuel Saracco * version: 0.8rc2 2004-10-10 Stephane Loeuillet * documentation : - Add 2 missing functions to -sections.txt file (fixes doc generation) 2004-10-10 Emmanuel Saracco * URL parser: - Added a new command line option: "--no-urls-args". With this option gurlchecker will systematically remove agruments on URLs. It is usefull to avoid nasty infinite loops when arguments are randomly generated, for example. * GUI: - Added a new check button to manage "--no-urls-args" option in the "New web project" dialog. 2004-10-09 Emmanuel Saracco * Search : - Little UI refresh enhancement for search tree view. 2004-10-08 Emmanuel Saracco * URL parser: - Bug #329 (gurlchecker caught in a loop) should be fixed now. However there still should be a bug on some special URLs. Need more testing. 2004-10-07 Emmanuel Saracco * version: 0.8rc1 * other: - gurlchecker has been frozen. - This is the first release candidate for the next "stable". Please don't hesitate to send us bug reports :-) 2004-10-01 Stephane Loeuillet * installation : - trying to make 'make distcheck' working, we're close 2004-10-01 Emmanuel Saracco * installation : - Added distclean-local and clean-local rules. 2004-09-30 Emmanuel Saracco * documentation : - Some code documentation. 2004-09-30 Stephane Loeuillet * documentation : - remove previously added uc_xml_parser_get_tags (src/xml_parse.[ch] is gone) - remove a strange rule : $(srcdir)/tmpl/*.sgml * i18n : - remove references to src/xml_parser.c in all .po files (+ .pot) - add a missing \n to the fr translation - reconvert the it translation to UTF-8 - remove old translations from .po files * clean-up : (prepare for automake-1.8) - don't overwrite CFLAGS, use AM_CFLAGS instead in src/Makefile.am - add stamp-h1 to .cvsignore (equivalent of stamp-h for automake-1.4) - add requirement for gtk-doc 1.1 in autogen.sh - add requirement for newer libtool/autoconf/automake (commented for now) - man/Makefile.am : add make-doc to dist - put .desktop.in in dist, instead of .desktop or won't pass distcheck 2004-09-29 Emmanuel Saracco * gnome integration : - Added icon in gurlchecker.desktop(.in) skeleton. * documentation : - Updated FAQ. - Added manpage * installation: - Updated installation process for pixmaps and glade file. * debian package: - Updated debian menu icon creation. 2004-09-29 Stephane Loeuillet * documentation : - update distributed docs (templates + sgml/html versions) with previous changes in -sections.txt files - move from sgml docs to xml (for .devhelp generation) - generate a .devhelp index file * i18n : - put translation list in alphabetical order in configure.in - transcode all po files in UTF-8 - update all po files with current line numbers - now use intltool to translate the .glade file content - add 2 missing files to POTFILES.in (missing translations) * clean-up : - add some file names to various .cvsignore files - bump intltool requirement to 0.25 - bump gtk-doc requirement to 1.1 - configure would now fail if libxml < 2.6 - use pkg-config to detect gtk-doc, simplify code 2004-09-28 Stephane Loeuillet * clean-up : remove some generated files which should not be in CVS - /config.guess, /config.sub, ltmain.sh (libtoolize) - /Makefile.in, /doc/Makefile.in, /m4/Makefile.in, /src/Makefile.in (automake) - /install-sh, /missing, stamp-h.in (automake) - /aclocal.m4 (aclocal) - /configure (????) - /config.h.in (????) - /mkinstalldirs (????) * documentation : - add missing symbols to -sections.txt file. - remove old symbols - add missing parameters * i18n : - move to intltool for i18n (works on .desktop/xml files) - update po files and pot accordingly * gnome integration : add gurlchecker.desktop(.in) skeleton 2004-09-28 Emmanuel Saracco * documentation: Updated gurlchecker FAQ at http://labs.libre-entreprise.org/docman/?group_id=7 2004-09-28 Emmanuel Saracco * URL parser: Fixed a bug in uc_url_get_hostname () that was resulting in segfault on some bad links. Task #317 (following/parsing links in image maps) should be ok now. * HTML parser: Fixed a big memory leak in uc_html_parser_parse (). 2004-09-27 Emmanuel Saracco * version: 0.7.17 * other: Some HTTP authentication enhancement in links refresh process. 2004-09-26 Emmanuel Saracco * other: Task #314 (Handle HTTP Authentication) is ok now. Added 2 more command line options: "--http-user" and "--http-passwd" for HTTP basic authentication. 2004-09-08 Emmanuel Saracco * version: 0.7.16 * other: Now really support local files check :-) 2004-08-08 Emmanuel Saracco * URL parser: Fixed a bug in redirection handling. * other: Updated my E-Mail address. 2004-07-01 Emmanuel Saracco * version: 0.7.15 * GUI: Removed "Proxy" and "Browser" choices in preferences dialog (it was just a shortcut for global gnome settings). * other: Added/Updated some macros for widgets management. Replaced glib "GPid" type by "gint" because some people have trouble with their glib version "GPid" not defined). 2004-06-31 Emmanuel Saracco * network: Updated "gethostbyname" section in "connect_thread ()". * URL parser: A lot of fixes in HTTPS URIs management. * HTML parser: Fixed a bug relative to local files in stylesheet parser. Also fixed a bug in local image file check. 2004-06-29 Emmanuel Saracco * network: Removed OpenSSL dependencie. We now use GNU TLS instead. * copying: Updated licenses to remove OpenSSL specific text. * documentation: Updated FAQ. 2004-06-18 Emmanuel Saracco * documentation: Added a FAQ file. 2004-06-18 Emmanuel Saracco * version: 0.7.14 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * project management: Fixed a bug in main link refresh. * other: We now use xmllib2 API to write XML files. Format of some XML files has been modified. 2004-06-15 Emmanuel Saracco * network: Fixed a bug in timeout management. * URL parser: Fixed a bug. * configuration: Removed "-pedantic" flag. 2004-06-08 Emmanuel Saracco * other: Fixed a prototype problem for "uc_project_get_type ()" function. 2004-06-08 Emmanuel Saracco * configuration: Added "-pedantic" flag and fixed a lot of warnings at compile time. 2004-06-08 Emmanuel Saracco * other: Updated "uc_utils_get_string_from_size ()" function. 2004-06-02 Emmanuel Saracco * version: 0.7.13 * copying: Updated license to fit OpenSSL license requirements. 2004-05-31 Emmanuel Saracco * configuration: Now SSL is automatically activated if found. You still can disable it by passing "--enable-ssl=no" to "./configure". 2004-05-31 Emmanuel Saracco * GUI: The section "Browser selection" was rewritten to use gconf. * documentation: Updated. 2004-05-31 Emmanuel Saracco * GUI: Redraw of the "Page information" window. * HTML parser: We now parse "@import" instruction in stylesheets. 2004-05-30 Emmanuel Saracco * GUI: Some enhancement in refresh method (we now use a macro). * other: Correction of a bug that appeared in previous commit. 2004-05-29 Emmanuel Saracco * HTML parser: Task #161 was re-opened by Frederic Peters because stylesheets were not parsed to find "url" links. Now it is ok. 2004-05-24 Emmanuel Saracco * HTML parser: We now check validity of stylesheets links (Task #161 has been closed). * GUI: Icons have been created/updated. One can now choose to display links by status/type/protocol. "Display" Menu has been reorganized. * other: Correction of a bug that was prevented images to be viewed. 2004-05-22 Emmanuel Saracco * version: 0.7.12 2004-05-20 Emmanuel Saracco * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * network: Added FTP support (for the moment we just support passive mode). Now you can enable or disable SSL support at compilation time (by default SSL support is disabled, you can activate it by passing "--enable-ssl=yes" to configure). Timeout management has been completely revisited. * GUI: New options have been added in "Protocols" section of the "Settings" notebook. * other: Updated INSTALL file. 2004-05-15 Emmanuel Saracco * network: Experimental SSL support. 2004-05-15 Emmanuel Saracco * network: We do not use anymore GNet API for TCP communication, so gURLChecker will be able to support SSL and FTP soon :-) There is still some problems with pthreads. Please test it and send me bugs reports. 2004-05-15 Emmanuel Saracco * hosting: CVS and all other tools were migrated from savannah to LE Labs (http://labs.libre-entreprise.org/projects/gurlchecker/). 2004-04-27 Emmanuel Saracco * other: Applied a patch from Stefan Fent for x86_64 compatibility. 2004-03-23 Emmanuel Saracco * version: 0.7.11 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * URL parser: Correction of a bug in relative paths management. * project management: Now it is possible to refresh a link, its parent, a whole branch or a entire web project. There is still a lot of work to optimize/debug/finalize it but it should work. Please test it and send me bug reports. Some corrections in similar links list management. Now you can double-clicked to open a existing project. * GUI: Correction of a problem on project properties display when deleting a project. Begun to use status bar instead of popups to display actions states. Come back of "malformed link" status. * other: Task #3154 (UI improvements) is now ok. Check's Elapsed time management has been modified. 2004-03-12 Emmanuel Saracco * GUI: Some main menu reorganization. Also added a "Delete project" item in "Project" menu. Enhancement of the "Page information" dialog to be more smart and more "Mozilla like". 2004-03-12 Emmanuel Saracco * version: 0.7.10 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * URL parser: Correction of a problem in uc_url_get_absolute() function. Task #3114 (Better handling of domains with timeout) is now ok. * translations: Angelo Theodorou maintain the italian translation. * project management: Correction of a lot of memory leaks when opening a project. * network: Rewrote the whole TCP layer. there is still memory leaks for timedouted connections, but no segfault should raise now. * documentation: Some more. * other: Web sites and bookmarks check should be more stable now. 2004-03-04 Emmanuel Saracco * version: 0.7.9 * URL parser: Correction of several syntax bugs that was resulting in segfault. Also we now use gnet_uri_* to assist us in URL parsing. Correction of bug #7070 (Problem with some relative HREF values). * project management: Some corrections. * other: Correction of several memory leaks in: debug, proxy management and tooltips functions. Project management feature is still buggy and less than usable, but web sites check should be better. 2004-02-18 Emmanuel Saracco * version: 0.7.8 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * URL parser: Correction of bug #7736 (Segmentation Fault while checking URL). * GUI: Tree view appearance optimization. * project management: Now it is possible to refresh both a whole branch or the whole project (there is still problems, but basic stuff is here). Added project create/update date. Time management enhancement on link refresh. * documentation: Some more. * other: Memory leaks corrections. Some code cleaning. Far less memory is consumed. 2004-01-27 Emmanuel Saracco * version: 0.7.7 * URL parser: Debugging. * network: Now using gnet API. * documentation: Begun code documentation with gtk-doc. It can be find at: http://www.nongnu.org/gurlchecker/doc/ * other: gURLChecker is now very much less CPU consuming. 2004-01-11 Emmanuel Saracco * version: 0.7.6 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * HTML parser: Task #2516 (Use libxml2 to parse HTML) is now ok. * URL parser: Task #2901 (Speed bookmarks checking) is ok now. Also added a "Speed check" option for web projects. * network: Now use new g_io_* API instead of deprecated gdk_input_*. Correction of bug #7163 (Sends http://savannah.nongnu.org/projects/gurlchecker/ as referrer, contrary to RFC2616). * project management: Reduced number of items to serialize when saving a project. * GUI: Task #2899 (Enable web browser parameters) is ok now. Enhancement of main tree view tooltips appeance for displaying information in a more readable way. Correction of bug #7165 (Problem with tree view tooltips display). * other: Correction of bug #7079 (0.6.3 / 0.7.3 not working in gnome-2.5.x ). 2004-01-04 Emmanuel Saracco * version: 0.7.5 * WARNING: You must delete manually your old "~/.gurlchecker" directory in order to test this new unstable release. If not, it will crash on loading your old projects. * URL parser: Correction of bug #7068 (Problem with some HREF values). * GUI: Added tooltips on main treeview rows. * other: Correction of bug #7059 (Crash error when viewing a page). gURLChecker no longer use gnome_config to store its configuration. We now use a XML file instead. Some other debugging. 2004-01-01 Emmanuel Saracco * version: 0.7.4 * GUI: Added "Last modified" column in the main tree view. Updated settings dialog appearance to be more "gnome like". Also added a toolbar in the main window. * GUI and URL parser: Added project management basics. For the moment, one can create, modify and delete a project. it is also possible to rescan a given page (full branch refresh will come soon...). For the moment Project management is for web sites only. * HTML parser: Correction of bug #6996 (Problem with base href tag). Correction of bug #6998 (HTTP header parsing problem). * other: UTF-8 enhancements and debugging. 2003-11-13 Emmanuel Saracco * version: 0.7.3cvs20031113 * search: Correction of bug #5987 (Crash error on closing search dialog). 2003-11-09 Emmanuel Saracco * version: 0.7.3cvs20031109 * URL parser: Correction of bug #6265 (Unable to connect to a certain site). * HTML parser: Label parsing enhancement. * other: Some pthread enhancement. 2003-10-16 Emmanuel Saracco * version: 0.7.3 * Bookmarks check: Some "cancel" speed enhancement. 2003-10-15 Emmanuel Saracco * version: 0.7.2cvs2003101500 * GUI: Modified main menu. * Bookmarks ckeck: Added possibility to delete some links in the check result and to save changes in the bookmarks file. 2003-10-13 Emmanuel Saracco * version: 0.7.2cvs2003101300 * URL parser: Correction of bug #4728 (Too many timeouts). However, it need to be confirm... * Bookmarks check: Added possibility to virtually remove a item from the bookmarks list. * GUI: Added informational popup on check cancel or check end. * other: Some code cleaning regarding libglade management. 2003-10-12 Emmanuel Saracco * version: 0.7.2cvs2003101200 * Bookmarks check: Use DOM parser instead of SAX parseri to parse XBEL. Encoding problem has been fixed. * URL parser: Fixed a problem with timeouts on non-existent servers. 2003-10-10 Emmanuel Saracco * version: 0.7.2 * Bookmarks check: Task #2240 (Bookmarks check) is 30% ok. This is a very experimental feature. Bug reports and freature requests are welcome :-) For the moment, only XBEL format can be checked and bookmarks can not be modified (there is also some encoding problems). * search: Minor updates. * URL parser: Correction of bug #5808 (Query string is added on redirections). * GUI: "pixmaps" directory has been removed. Pictures are now under "ui" directory, with glade file. Maintainers should adapt their packages. * translations: Alexander Hunziker maintain the german translation. * other: Some code reorganization. 2003-10-01 Emmanuel Saracco * version: 0.7.1 * URL parser: Correction of bug #5487 (Problem with some redirections). Correction if bug #4731 (Problem with BASE tag and HREF attribut). * search: Task #1871 (Basic search engine) is completed now. 2003-09-19 Emmanuel Saracco * version: 0.7.0 * GUI: Task #2517 (Dynamically modify delay between checks) is now ok. Also added possibility to modify timeout. Added history for all combo boxes, and ability to clear them in the preferences (notebook "Personnal data"). Removing "check level" limit in the preferences. Correction of a bad double click handleling when treeview is empty. * search: Task #1871 (Basic search engine) is in progress. for the moment search only can be done on whole pages. 2003-08-26 Emmanuel Saracco * version: 0.6.0-pre6cvs2003082600 * GUI: Correction of a problem in image preview. * HTML parser: Correction of a problem in the uc_html_parser_prepare_buffer () function. * URL parser: Connection speed enhancement. Now using glib threads instead of direct calls to pthread library. * other: Other debugging and optimizations. There is still a problem with too many timeouts, due to the use of gdk_input_* instead of g_io_*. 2003-08-14 Emmanuel Saracco * version: 0.6.0-pre6 * GUI: Now use theme settings for treeview rows color. * URL parser: Correction of bug #4722 (Problem with relative urls). Other debugging and optimization. * HTML parser: Correction of bug #4727 (HTML parser crash). Other debugging and optimization. Added ability to ignore item or cancel both during HTML parsing. * other: There is still some problem with the thread that create socket. Sometime it freeze gURLChecker while connecting. 2003-08-11 Emmanuel Saracco * version: 0.6.0-pre5 * GUI: Now treeview has colorized rows to be easier to read. * URL parser: Correction of bug #4359 (First page properties). Threaded socket opening to avoid freeze of the UI waiting for the timeout. * other: Other debugging and enhancements. I hope next release will be "stable" 0.6.0 release... depending of users feedback. 2003-08-10 Emmanuel Saracco * version: 0.6.0-pre4cvs2003081001 * URL parser: Enhancement of timeout management during data retrieving. 2003-08-10 Emmanuel Saracco * version: 0.6.0-pre4cvs2003081000 * URL parser: Task #2491 (Manage a cache for connections) is now ok. 2003-08-09 Emmanuel Saracco * version: 0.6.0-pre4 * GUI: Task #1957 (Double click action) is ok now. * URL parser: Correction of bug #4627 (Detection of bad relative links syntax). Correction of bug #4639 (Bad URL encoding). * HTML parser: Correction of a segfault in BASE tag management. * other: Task #2494 (URL on the command line) is ok now. Correction of a problem with timeout during email MX check. Other debugging. 2003-08-05 Emmanuel Saracco * version: 0.6.0-pre3 * GUI: Added possibility to check or not within HTML comments. * parser: Applied a patch from James Antill that fix a segfault in the HTML parser. Correction of bug #4613 (Interpretation of BASE tag). Fixed some bugs in redirection handling. * other: Applied a patch from Koop Mast for FreeBSD compatibility. 2003-08-03 Emmanuel Saracco * version: 0.6.0-pre2 * GUI: Removing progress bar during the check. * parser: Correction of a bug that was resulting in a segfault. Improved redirection handleling. Other debugging in urls building. Correction of a UTF-8 conversion bug that was resulting in segfault. A lot of enhancement in management of urls and links. 2003-07-31 Emmanuel Saracco * version: 0.6.0-pre1 * GUI: Correction of a bug in the management of selection on the main tree view widget. Adding possibility for user to specify if he/she want gurlchecker to download code of files with a content different of web content (pdf, sxw...). Some correction about visibility in the glade file. * parser: Correction of bug #4514 (URL encoding management). Correction of a bug that was resulting in a segfault at check start. * other: I decided to freeze gURLChecker. Stable version v0.6.0 will coming soon. Thanks to test preX releases! 2003-07-28 Emmanuel Saracco * version: 0.5.6cvs20030728 * GUI: Added ability for user to choose if we download or not images source code (for image preview feature). By default this functionnality is deactivated. You would activating it to preview checked images. * parser: Correction of bug #4515 (Waiting time between downloads). 2003-07-28 Emmanuel Saracco * version: 0.5.6 * GUI: Enhancement of the link properties dialog. * parser: Task #1918 (Image preview) is ok now. Correction of bug #4487 (Management of blanks in urls). Now source code is downloaded juste after the header check. A lot of optimization and debugging. * other: UTF-8 enhancement. 2003-07-23 Emmanuel Saracco * version: 0.5.5cvs20030723 * parser: Corrected a problem with parent link. * other: Some minor corrections (language). 2003-07-20 Emmanuel Saracco * version: 0.5.5 * GUI: Treeview popup enhancement. Task #1858 (Emails tags) is now fully implemented (with syntax and MX availability check). 2003-07-17 Emmanuel Saracco * version: 0.5.4cvs20030717 * GUI: Task #1858 (Emails tags) is 80% completed. * parser: Correction of bug #3408 (Frames handling). Added support for "TITLE" attribut of the "IMG" element. Other debugging. 2003-07-16 Emmanuel Saracco * version: 0.5.4 * GUI: Added a "Protocols" notebook in the "Filters" section of preferences. * parser: Tasks #2422 (Manage FILE protocol) and #2333 (Directory selection) are ok now. Improved "Ignore Item" and "Suspend/Continue" functionalities. A lot of debugging. UTF8 enhancement. 2003-07-14 Emmanuel Saracco * version: 0.5.3cvs20030714 * parser: debugging. 2003-07-08 Emmanuel Saracco * version: 0.5.3cvs20030708 * parser: Correction of bug #4091 (Problem with empty ALT attribute) and #4074 (Tags around HREF tag label). Also corrected some bugs resulting on crash error at exit or on new check. Some optimization and other debugging. There is still bugs in the html parser that crash the application on some special conditions. * other: Gunner Poulsen maintain the danish translation. 2003-06-24 Emmanuel Saracco * version: 0.5.3 * GUI: Added menu icons. Added gURLChecker logo. gURLChecker icon is ok under ./pixmaps/ (package maintainers can now integrate it in their package). * parser: Some code cleaning. 2003-06-24 Emmanuel Saracco * version: 0.5.2cvs20030624 * GUI: New type icons. Added a state column in the urls treeview. Added Jan Henrik Helmers in the about. * parser: Correction of bug #4063 (Problem with carriage return). Other debugging and some code cleaning. * GUI + parser: Added possibility to reject directories and domains. 2003-06-23 Emmanuel Saracco * version: 0.5.2cvs20030623 * GUI: improving filters management. 2003-06-16 Emmanuel Saracco * version: 0.5.2 * parser: Recoded the whole HTML parser. Correction of bug #3841 (Tag detection problem). 2003-06-14 Emmanuel Saracco * version: 0.5.1cvs20030614 * GUI: Added possibility to view online the parent page of a URL. Begun task #1861 (HTML page properties). Updated preferences dialog. * other: integration of some trunks of glibc g_hash_table private code to avoid using the g_hash_table_foreach () function. 2003-06-12 Emmanuel Saracco * version: 0.5.1 * GUI: Added possibility to view a URL online. 2003-06-11 Emmanuel Saracco * version: 0.5.0cvs20030611 * GUI: Added possibility to set a web browser in the Preferences. 2003-06-10 Emmanuel Saracco * version: 0.5.0cvs20030610 * GUI: More informations on the report frame. * parser: Some debugging and code cleaning. Added popup to prevent the user that for the moment we are not handleling web sites with frames. 2003-06-01 Emmanuel Saracco * version: 0.5.0 * other: Applying FreeBSD patch from Koop Mast . 2003-05-30 Emmanuel Saracco * version: 0.5.0 * parser: Correction of bug #3802 (problem with the "uc_url_get_absolute" function), bug #3805 (don't handle some href links) and bug #3804 (does not handle some image tags). Task #2143 (Image link label) is ok now. * other: First official "Unstable" release of gURLChecker. 2003-05-20 Emmanuel Saracco * version: 0.3.15 * other: Code restructuration. 2003-05-17 Emmanuel Saracco * version: 0.3.15 * parser: Correction of bug #3545 (Check all links) and bug #3647 (Problem with some tags beginning by * version: 0.3.14 * parser: Correction of bug #3543 (Problem with some HTML comments). 2003-05-11 Emmanuel Saracco * version: 0.3.14 * parser: Correction of bug #3539 (Problem with some relative urls). Some other debugging. 2003-05-08 Emmanuel Saracco * version: 0.3.13 * parser: Correction of bug #3308 (Special urls). * other: Florent Jugla maintain the esperanto translation. 2003-04-30 Emmanuel Saracco * version: 0.3.12 * parser: Correction of bug #3406 (Redirections handling ). Some optimization. * GUI: Correction of bug #3407 (Detailed information error). We now display the real URL value in the treeview, instead of our normalized URL. * other: Some code reorganization. 2003-04-28 Emmanuel Saracco * version: 0.3.11 * parser: Correction of bug #3359 (gURLChecker Crash during the check). 2003-04-27 Emmanuel Saracco * version: 0.3.11 * parser: Correction of bug #3348 (Ignore item bug). 2003-04-25 Emmanuel Saracco * version: 0.3.11 * GUI: Corrected very old bug (resulting in crash error) in the treeview display functions. * parser: Correction of bug #3326 (Crash on some urls). 2003-04-24 Emmanuel Saracco * version: 0.3.10 * GUI: Task #2087 (Link in detailed informations) is ok now. ID column in the treeview has been hidden. * parser: Correction of bug #2708 (Disk free space check) and bug #3305 (Parser error in link interpretation). Also correcting a format error on link label formater. 2003-04-21 Emmanuel Saracco * version: 0.3.9 * GUI: Correction of bug #3281 (Copy/paste possibility). Task #2079 (Parent page in detailed information) is ok now. * parser: Correction of bug #3283 (bug in uc_utils_socket_open), bug #3280 (Proxy problem with private network) and bug #3285 (Parsable content types). 2003-04-18 Emmanuel Saracco * version: 0.3.8 * GUI: Added possibility to launch new instances of gURLChecker in the main menu. Correction of bug #3261 ("Check in progress..." window). * parser: Correction of bug #2990 (Status detection problem). * other: Added some standard command line options. 2003-04-17 Emmanuel Saracco * version: 0.3.7 * GUI: Correction of bug #3228 (Segfault on exit). 2003-04-08 Emmanuel Saracco * version: 0.3.6 * other: Daniel Pecos maintain the spanish translation. Takeshi Aihana maintain the japanese translation. At last, I have fixed the numerotation og gURLChecker :-) Corrected bug in /src/Makefile on libglade compilation flag (gURLChecker should work better on redhat now :-) ). I have also modified glade .xml file path (/gui -> /ui). 2003-04-07 Emmanuel Saracco * version: 0.3.5-3 * parser: Correction of bug #3131 (Probleme with some urls) and bug #3134 (Status code 400 on some valid urls). * other: Dag Wieers maintain a RPM repository for gURLChecker. 2003-04-02 Emmanuel Saracco * version: 0.3.5-2 * GUI: Added colored progress bars in report display. Correction of bug #3041 (Shortcuts problem) and bug #3022 (Gnome proxy settings). * parser: Little optimization. * other: Revisited proxy management. 2003-03-31 Emmanuel Saracco * version: 0.3.5-1 * GUI: Improved main window resizing. Improved "new project" creation. Added more menu shortcuts. * other: Task #1976 (Allow multiple instances) is now ok. 2003-03-29 Emmanuel Saracco * version: 0.3-5b * parser: Correction of bug #2860 (HREF links value without quotes). 2003-03-28 Emmanuel Saracco * version: 0.3-5a * other: Correction of bug #2979 (Working directory selection). 2003-03-28 Emmanuel Saracco * version: 0.3-5 * other: Correction of bug #2977 (Segmentation fault), due to a bad handling of the gurlchecker configuration file when it was reinitialized. 2003-03-19 Emmanuel Saracco * version: 0.3-4 * parser: Correction of bug #2844 (Images tags are not handled correctly), bug #2859 (Does not run on redhat 8) and bug #2875 (IMG links value without quotes ). Task #1938 (use GConf for proxy) is ok now. * other: Installation files have changed. Installation directories have changed (gui/ and pixmaps/). A lot of debugging (especially in the urls parser and in the proxy management). 2003-03-17 Emmanuel Saracco * version: 0.3-3 * parser: Correction of a bug in the proxy support. It should be ok now. 2003-03-16 Emmanuel Saracco * version: 0.3-2 * parser: Correction of bug #2550. Task #1927 (Proxy) is ok now. 2003-03-12 Emmanuel Saracco * version: 0.3-1 * GUI: Task #1927 (Progress bar) and Task #1926 (Ability to ignore a page) are ok now. Frames reorganisation. 2003-03-11 Emmanuel Saracco * version: 0.3-0 * parser: Debugging. Network sending and reading are threaded now using gdk_input_add. Correction of bug #2750 (Signals management). * GUI: Correction of bug #2712 (Treeview segmentation fault). UTF8 corrections. Task #1860 (Display icons) is ok now. 2003-03-03 Emmanuel Saracco * version: 0.2-0 * parser: Correction of bug #2703 (Parser segmentation fault). Debugging. Task #1873. Task #1857 (Check images tags (img)) is ok now. Parser optimizations. * GUI: Libglade debugging (Bug #2699). Task #1873 (Display HTML source code) is ok now. Added link type in the treeview. 2003-02-28 Emmanuel Saracco * version: 0.1-6 * GUI: More informations in the treview urls list. * other: Code restructuring and code debugging. Correction of bug #2565 (Segmentation fault). 2003-02-26 Emmanuel Saracco * version: 0.1-5 * GUI: Little debugging on the "View" menu item. * other: Code restructuring. 2003-02-16 Emmanuel Saracco * version: 0.1-4 * parser: Some code debugging (Segmentation fault) and timeouts alarm optimization. * GUI: Some optimization on treeview display. 2003-02-16 Emmanuel Saracco * version: 0.1-3 * GUI: Correction of bug #2555 (Header display). 2003-02-15 Emmanuel Saracco * version: 0.1-2 * parser: Correction of bug #2540 (Timeouts display in the treeview). 2003-02-14 Emmanuel Saracco * version: 0.1-1 * parser: Correction of bug #2551 (Max number of checked links). 2003-02-12 Emmanuel Saracco * version: 0.1 * GUI: Deleted all the things regarding local file scan. Added possibility for the user to mask treeview to see only bad links or good links etc. * parser: Deleted all the things regarding local file scan. 2003-02-10 Emmanuel Saracco * version: 0.1pre11 * parser: Final file/directory confusion bug corrected. Scan time optimization. 2003-02-10 Emmanuel Saracco * version: 0.1pre10 * parser: Parser work much better now, but it sill have bugs. A lot of improvements. Multiple same links are only checked once. * GUI: About box is ok now. 2003-01-26 Emmanuel Saracco * version: 0.1pre9 * parser: The parser is now functionnal and can really check recursivly a given web site. * other: Somme code debugging 2002-12-06 Emmanuel Saracco * version: 0.1pre8 * parser: Now, gURLChecker does not request header page for urls that have been already checked. Handling 301 server code. Code debugging. Urls with redirection now can be parse. gURLChecker is now enable to do recursives checks :-) * GUI: Deactivation of all items regarding local files check. 2002-11-25 Emmanuel Saracco * version: 0.1pre7 * GUI: Most of the glade items are now loaded at application start. Some hard coded items are now managed with glade too. Items in the top right frame now don't move anymore with the information text messages. Corrected a bug in the status code information display. Now, user select content type to not check instead of content type to check, in dialog preferences. Added support for multiple format informations display (basic and detailed). 2002-11-20 Emmanuel Saracco * version: 0.1pre6 * GUI: Added libglade support. 2002-11-19 Emmanuel Saracco * version: 0.1pre5 * parser: Added display of check report. Added possibility of canceled the check. * GUI: Created a gURLChecker logo... Yeah, I know, I am not graphist :-) * other: code cleaning and debugging. 2002-11-18 Emmanuel Saracco * version: 0.1pre4 * preferences: Corrected bugs. Updated preferences management. * parser: Added check report (not yet displayed). Added some support for associating server status code with friendly message and description. * GUI: Added colorized display for list items. * other: Some code reorganisation. 2002-11-15 Emmanuel Saracco * version: 0.1pre3 * parser: Added support for urls with anchor indication. Added connexion timeout and file parser. gURLChecker is now enable to check other ports than 80 * other: code cleaning and debugging. 2002-11-08 Emmanuel Saracco * version: 0.1pre2 * GUI: Added a progress dialog to display checking URLs and operations states. Added some inputs controls. * parser: Now the URLs parser can wait a little bit between two checks, to avoid being rejected from the scanned host. 2002-11-06 Emmanuel Saracco * version: 0.1pre1 * parser: Added some parser work and display functions (the very beginning of the storie :-) ). 2002-10-31 Emmanuel Saracco * version: 0.1pre0 * Initial version gurlchecker-0.13.1/ABOUT-NLS0000644000175000017500000015111610744343152012252 00000000000000Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your country by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of January 2004. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | () | ant-phone | () | anubis | | ap-utils | | aspell | [] | bash | [] [] [] [] | batchelor | | bfd | [] [] | binutils | [] [] | bison | [] [] [] | bluez-pin | [] [] [] | clisp | | clisp | [] [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | [] [] [] | darkstat | [] () [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] [] | error | [] [] [] [] [] | fetchmail | [] () [] [] [] [] | fileutils | [] [] [] | findutils | [] [] [] [] [] [] [] | flex | [] [] [] [] | fslint | | gas | [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] [] | gettext | [] [] [] [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] [] [] [] | gliv | | glunarclock | [] [] | gnubiff | [] | gnucash | [] () [] [] | gnucash-glossary | [] () [] | gnupg | [] () [] [] [] [] | gpe-aerial | [] | gpe-beam | [] [] | gpe-calendar | [] [] | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] [] | gprof | [] [] [] | gpsdrive | () () () | gramadoir | [] | grep | [] [] [] [] [] [] | gretl | [] | gtick | [] () | hello | [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] | iso_3166_1 | [] [] [] [] [] [] | iso_3166_2 | | iso_3166_3 | [] | iso_4217 | [] [] [] [] | iso_639 | | jpilot | [] [] [] | jtag | | jwhois | [] | kbd | [] [] [] [] [] | latrine | () | ld | [] [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] | libiconv | [] [] [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lingoteach_lessons | () () | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] | man-db | [] () [] [] () | minicom | [] [] [] | mysecretdiary | [] [] [] | nano | [] () [] [] [] | nano_1_0 | [] () [] [] [] | opcodes | [] | parted | [] [] [] [] [] | ptx | [] [] [] [] [] | python | | radius | [] | recode | [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] | sed | [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | | sharutils | [] [] [] [] [] [] | silky | () | skencil | [] () [] | sketch | [] () [] | soundtracker | [] [] [] | sp | [] | tar | [] [] [] [] | texinfo | [] [] [] | textutils | [] [] [] [] | tin | () () | tp-robot | | tuxpaint | [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] [] [] [] | xchat | [] [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] | +----------------------------------------------------+ af am ar az be bg bs ca cs da de el en en_GB eo es 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68 et eu fa fi fr ga gl he hr hu id is it ja ko lg +-------------------------------------------------+ a2ps | [] [] [] () () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] | aspell | [] [] | bash | [] [] | batchelor | [] [] | bfd | [] | binutils | [] [] | bison | [] [] [] [] | bluez-pin | [] [] [] [] [] | clisp | | clisp | [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] [] | darkstat | () [] [] [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext | [] [] [] | gettext-examples | [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gliv | () | glunarclock | [] [] [] [] | gnubiff | [] | gnucash | () [] | gnucash-glossary | [] | gnupg | [] [] [] [] [] [] [] | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] [] [] | gpe-clock | [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] | gpe-sketchbook | [] | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] | gprof | [] [] | gpsdrive | () () () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] | gtick | [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | indent | [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] [] | iso_3166_1 | [] [] [] [] [] | iso_3166_2 | | iso_3166_3 | | iso_4217 | [] [] [] [] [] [] | iso_639 | | jpilot | [] () | jtag | [] | jwhois | [] [] [] [] | kbd | [] | latrine | [] | ld | [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] [] [] | libiconv | [] [] [] [] [] [] [] [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] | lingoteach_lessons | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] [] [] [] [] | man-db | () () | minicom | [] [] [] [] | mysecretdiary | [] [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] | sharutils | [] [] [] [] [] | silky | () [] () () | skencil | [] | sketch | [] | soundtracker | [] [] | sp | [] () | tar | [] [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] [] [] | tin | [] () | tp-robot | [] | tuxpaint | [] [] [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] () [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] | xchat | [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] [] | +-------------------------------------------------+ et eu fa fi fr ga gl he hr hu id is it ja ko lg 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0 lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru +-----------------------------------------------------+ a2ps | [] [] () () [] [] [] | aegis | () () () | ant-phone | [] [] | anubis | [] [] [] [] [] [] | ap-utils | [] () [] | aspell | [] | bash | [] [] [] | batchelor | [] | bfd | [] | binutils | [] | bison | [] [] [] [] [] | bluez-pin | [] [] [] | clisp | | clisp | [] | console-tools | [] | coreutils | [] [] | cpio | [] [] [] [] [] | darkstat | [] [] [] [] | diffutils | [] [] [] [] [] [] | e2fsprogs | [] | enscript | [] [] [] [] | error | [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] | fslint | [] [] | gas | | gawk | [] [] [] | gbiff | [] [] | gcal | | gcc | | gettext | [] [] [] | gettext-examples | [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] | gimp-print | [] | gliv | [] [] [] | glunarclock | [] [] [] [] | gnubiff | [] | gnucash | [] [] () [] | gnucash-glossary | [] [] | gnupg | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] [] | gpe-ownerinfo | [] [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] | gprof | [] [] | gpsdrive | () () [] | gramadoir | () [] | grep | [] [] [] [] [] | gretl | | gtick | [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | indent | [] [] [] [] | iso_3166 | [] [] [] | iso_3166_1 | [] [] | iso_3166_2 | | iso_3166_3 | [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] | jpilot | () () | jtag | | jwhois | [] [] [] [] () | kbd | [] [] [] | latrine | [] | ld | | libc | [] [] [] [] | libgpewidget | [] [] [] | libiconv | [] [] [] [] [] | lifelines | | lilypond | | lingoteach | | lingoteach_lessons | | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] | make | [] [] [] [] | man-db | [] | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] | nano_1_0 | [] [] [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | ptx | [] [] [] [] [] [] [] [] | python | | radius | [] [] | recode | [] [] [] [] | rpm | [] [] [] | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] | sharutils | [] [] | silky | () | skencil | [] [] | sketch | [] [] | soundtracker | | sp | | tar | [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] | tin | | tp-robot | [] | tuxpaint | [] [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] | vorbis-tools | [] [] [] | wastesedge | | wdiff | [] [] [] [] [] | wget | [] [] [] | xchat | [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] [] | +-----------------------------------------------------+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63 sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu +-----------------------------------------------------+ a2ps | [] [] [] [] | 16 aegis | | 0 ant-phone | | 3 anubis | [] [] | 9 ap-utils | () | 3 aspell | | 4 bash | | 9 batchelor | | 3 bfd | [] [] | 6 binutils | [] [] [] | 8 bison | [] [] | 14 bluez-pin | [] [] [] | 14 clisp | | 0 clisp | | 5 console-tools | | 3 coreutils | [] [] [] [] | 16 cpio | [] [] | 14 darkstat | [] [] [] () () | 12 diffutils | [] [] [] | 23 e2fsprogs | [] [] | 6 enscript | [] [] | 12 error | [] [] [] | 15 fetchmail | [] [] | 11 fileutils | [] [] [] [] [] | 17 findutils | [] [] [] [] [] [] | 29 flex | [] [] | 13 fslint | | 3 gas | [] | 3 gawk | [] [] | 12 gbiff | | 4 gcal | [] [] | 4 gcc | [] | 4 gettext | [] [] [] [] [] | 16 gettext-examples | [] [] [] [] [] | 14 gettext-runtime | [] [] [] [] [] [] [] [] | 22 gettext-tools | [] [] [] [] [] [] | 14 gimp-print | [] [] | 10 gliv | | 3 glunarclock | [] [] [] | 13 gnubiff | | 3 gnucash | [] [] | 9 gnucash-glossary | [] [] [] | 8 gnupg | [] [] [] [] | 17 gpe-aerial | [] | 7 gpe-beam | [] | 8 gpe-calendar | [] [] [] [] | 13 gpe-clock | [] [] [] | 10 gpe-conf | [] [] | 9 gpe-contacts | [] [] [] | 11 gpe-edit | [] [] [] [] [] | 12 gpe-go | | 5 gpe-login | [] [] [] [] [] | 13 gpe-ownerinfo | [] [] [] [] | 13 gpe-sketchbook | [] [] | 9 gpe-su | [] [] [] | 10 gpe-taskmanager | [] [] [] | 10 gpe-timesheet | [] [] [] [] | 12 gpe-today | [] [] [] [] [] | 13 gpe-todo | [] [] [] [] | 12 gphoto2 | [] [] [] | 11 gprof | [] [] | 9 gpsdrive | [] [] | 3 gramadoir | [] | 5 grep | [] [] [] [] | 26 gretl | | 3 gtick | | 7 hello | [] [] [] [] [] | 34 id-utils | [] [] | 12 indent | [] [] [] [] | 21 iso_3166 | [] [] [] [] [] [] [] | 27 iso_3166_1 | [] [] [] | 16 iso_3166_2 | | 0 iso_3166_3 | | 2 iso_4217 | [] [] [] [] [] [] | 24 iso_639 | | 1 jpilot | [] [] [] [] [] | 9 jtag | [] | 2 jwhois | () [] [] | 11 kbd | [] [] | 11 latrine | | 2 ld | [] [] | 5 libc | [] [] [] [] | 20 libgpewidget | [] [] [] [] | 13 libiconv | [] [] [] [] [] [] [] [] | 27 lifelines | [] | 2 lilypond | [] | 3 lingoteach | | 2 lingoteach_lessons | () | 0 lynx | [] [] [] | 14 m4 | [] [] | 15 mailutils | | 5 make | [] [] [] | 16 man-db | [] | 5 minicom | | 11 mysecretdiary | [] [] | 10 nano | [] [] [] [] | 17 nano_1_0 | [] [] [] | 17 opcodes | [] [] | 6 parted | [] [] [] | 15 ptx | [] [] | 22 python | | 0 radius | | 4 recode | [] [] [] | 20 rpm | [] [] | 9 screem | [] [] | 2 scrollkeeper | [] [] [] | 15 sed | [] [] [] [] [] [] | 24 sh-utils | [] [] | 14 shared-mime-info | [] [] | 7 sharutils | [] [] [] [] | 17 silky | () | 3 skencil | [] | 6 sketch | [] | 6 soundtracker | [] [] | 7 sp | [] | 3 tar | [] [] [] [] [] | 24 texinfo | [] [] [] | 14 textutils | [] [] [] [] | 16 tin | | 1 tp-robot | | 2 tuxpaint | [] [] [] [] [] | 29 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] | 15 vorbis-tools | | 8 wastesedge | | 0 wdiff | [] [] [] | 18 wget | [] [] [] [] [] [] [] [] | 24 xchat | [] [] [] [] [] | 15 xfree86_xkb_xml | [] [] [] [] [] | 11 xpad | | 5 +-----------------------------------------------------+ 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If January 2004 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. gurlchecker-0.13.1/README0000644000175000017500000000023110744343152011672 00000000000000this software is right under development. if you want to take part in its development, please contact me on gurlchecker-0.13.1/po/0000755000175000017500000000000011530645400011507 500000000000000gurlchecker-0.13.1/po/eo.po0000644000175000017500000015064111407055351012404 00000000000000# gURLChecker eo.po # Copyright (C) 2002, 2003 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # # Florent Jugla , 2003. # msgid "" msgstr "" "Project-Id-Version: 0.7.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2003-11-16 19:07GMT\n" "Last-Translator: \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Tipo" # Tipo #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "Retligo (URL)" #: ../src/application.c:288 #, fuzzy msgid "Custom action" msgstr "Elekti dosieron de ligosignoj" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Marko" #: ../src/application.c:318 #, fuzzy msgid "Date" msgstr "Forigi" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Nomo" #: ../src/application.c:529 msgid "Content" msgstr "Ujo" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "" #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "" #: ../src/application.c:1536 msgid "Missing URL" msgstr "" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "" #: ../src/application.c:1577 msgid "Unknown" msgstr "" #: ../src/application.c:1582 #, fuzzy msgid "(gURLChecker internals)" msgstr "Preferaĵoj por gURLChecker" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "" #: ../src/application.c:1592 msgid "Not cached" msgstr "" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 #, fuzzy msgid "E-Mail" msgstr "Retpoŝtadreso" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 #, fuzzy msgid "Please, select a item." msgstr "Bonvolu selekti anon." #: ../src/application.c:1906 #, fuzzy msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "Neeblas lanĉi vian krozilon; la jena eraro okazis:" #: ../src/application.c:1956 ../src/application.c:1988 #, fuzzy msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "La dosiero estas malplena aŭ ne ekzistas en la kaŝ-dosierujo!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Vidi la fonton" #: ../src/application.c:2029 msgid "Redirect" msgstr "" #: ../src/application.c:2030 #, fuzzy msgid "Edit" msgstr "_Eldoni" #: ../src/application.c:2031 msgid "Create target" msgstr "" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Servilo nekontaktebla." #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "La fora servilo ne respondas...\n" "\n" "La limtempo konfigurata en la preferaĵoj de la uzanto de gURLChecker eble " "estas tro mallonga, aŭ la servilo ne plu funkcias.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "FILE://protokolo" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Dosier-protokolo detektita.\n" "Vi petis min de averti vin kiam mi trovas \"FILE://\" protokolon en iu ligo." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Paĝo disponeblas." #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Nenia problemo kun tiun paĝon.\n" "Eblas aliri la servilon kaj elŝuti la dokumenton." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Paĝo netrovita." #: ../src/application.c:2123 ../src/application.c:2240 #, fuzzy msgid "The page does not exist on the server." msgstr "Tiu paĝo ne plu ekzistas en la servilo." #: ../src/application.c:2129 #, fuzzy msgid "Bad E-Mail link" msgstr "Malbona retpoŝt-ligo" #: ../src/application.c:2130 #, fuzzy msgid "The E-Mail specified in the link is not well formatted." msgstr "La retpoŝtadreso indikita en la ligo ne estas bone aranĝita." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problemo kun MX" #: ../src/application.c:2137 #, fuzzy msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "MX domajno indikita por tiu retpoŝtadreso ne estas valida aŭ ne ekzistas la " "domajnon." #: ../src/application.c:2144 #, fuzzy msgid "E-Mail link ok" msgstr "Bona retpoŝtligo." #: ../src/application.c:2144 #, fuzzy msgid "No problem with this E-Mail." msgstr "Nenia problemo kun tiu retpoŝtadreso." #: ../src/application.c:2150 msgid "Item ignored" msgstr "Ano ignorita." #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "Vi elektis ignori tiun anon dum la skanado de gURLChecker." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Malformita ligo" #: ../src/application.c:2159 #, fuzzy msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "La HTML-a kodo estas malformita.\n" "Eble mankas la SRC atributon, aŭ eble la relativa ligo ne estas valida." #: ../src/application.c:2165 msgid "No valid information" msgstr "Nenia valida informo." #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker ne povas interpreti la kodon sendita de la fora komputilo.\n" "Bonvolu sendi la valoron de la kampo \"Statuso\" al la aŭtoro de gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "La paĝo definitive translokis" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "Nenia problemo kun tiun paĝon.\n" "Novan definitivan retligon estis aldonita la petita risurco." #: ../src/application.c:2191 #, fuzzy msgid "Page moved Temporarily" msgstr "La paĝo definitive translokis" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Aliro protektas." #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Necesas aŭtenteco por aliri tiun paĝon." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Aliro malpermesitas." #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Paĝo disponebla, sed malplena." #: ../src/application.c:2225 #, fuzzy msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Nenia problemo kun tiun paĝon, sed tiu estas malplena.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "Malformita retligo" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "La fora servilo ne komprenis la peton, probable ĉar ĝi estas sintakse " "malformita." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Metodo malpermesita." #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "La fora servilo rifuzis elsendi la paĝon.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Interna eraro de la servilo." #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "Tiu paĝo enhavas erarojn, aŭ la servilo estas malbone konfigurita.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2262 #, fuzzy msgid "Method not supported" msgstr "Metodo malpermesita." #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "" #: ../src/application.c:2273 #, fuzzy msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "La kluza aŭ prokura servilo ne ricevis respondon de la servilo specifita en " "la retligo (ekz. HTTP, FTP, LDAP) aŭ de intera servilo (ekz. DNS) de kiu ĝi " "dependas." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Servo nedisponeblas." #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "La servilo ne povas respondi: eble ĝi tro laboras aŭ estas administrata nun. " "Ankaŭ eblas ke via proksima servilo ne povas aliri al tiu servilo.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Peto nekompletis." #: ../src/application.c:2294 #, fuzzy msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "La kluza aŭ prokura servilo ne ricevis respondon de la servilo specifita en " "la retligo (ekz. HTTP, FTP, LDAP) aŭ de intera servilo (ekz. DNS) de kiu ĝi " "dependas." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Transpasis la limtempo por tiu paĝo." #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "La konfigurita limtempo en la preferaĵoj de la uzanto de gURLChecker eble " "estas tro mallonga, aŭ la fora servilo estas nun tro okupata por respondi al " "la petoj de gURLChecker.\n" "\n" "Provu kontroli ĝin poste." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "Neeblas lanĉi novan aperon de gURLChecker; la jena eraro okazis:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Nuna kontrolado..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" #: ../src/application.c:3074 msgid "Manpage:" msgstr "" #: ../src/application.c:3078 msgid "Code:" msgstr "" #: ../src/application.c:3083 #, fuzzy msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana , Japana\n" "Alexander Hunziker , Germana\n" "Daniel Pecos , Kastilia\n" "Emmanuel Saracco , Franca\n" "Gunner Poulsen , Danish\n" "Florent Jugla , Esperanta\n" #: ../src/application.c:3103 #, fuzzy msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker estas kontrolilo de retligoj.\n" "Povas funkcii kun kompleta teksejo, kun simpla retpaĝo aŭ ankoraŭ kun " "dosiero de legosignoj" #: ../src/application.c:3327 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "Elekti kontrolota dosieron de ligosignoj" #: ../src/application.c:3332 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "Elekti kontrolota dosieron de ligosignoj" #: ../src/application.c:3337 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "Elekti kontrolota dosieron de ligosignoj" #: ../src/application.c:3342 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "Elekti kontrolota dosieron de ligosignoj" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nova domajno malakceptota" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Aldoni domajno malakceptota" #: ../src/application.c:3372 #, fuzzy msgid "This domain name is not valid." msgstr "La domajno ne la retpoŝtadreso ne ŝajnas valida" #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Nova dosierujo malakceptota" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Aldoni dosierujo malakceptota" #: ../src/application.c:3543 #, fuzzy msgid "Please, enter a string to search." msgstr "Bonvolu enmeti nomo de dosierujo kie vi volas serĉi" #: ../src/application.c:3566 #, fuzzy msgid "Please, check that there is no mismatch in your URL and try again." msgstr "" "Bonvolu kontroli ke la enmetita retligo estas valida kaj poste restari." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "" #: ../src/application.c:3672 ../src/project.c:441 #, fuzzy msgid "[Local file] Page information" msgstr "Informojn pri la paĝo" #: ../src/application.c:3675 ../src/project.c:444 #, fuzzy msgid "[Web site] Page information" msgstr "Informojn pri la paĝo" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Selektu dosiero de ligosignoj kiun vi volas kontroli." #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" #: ../src/application.c:3799 #, fuzzy msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "La dosiero kiun vi enmetis ne estas valida, aŭ vi ne havas la necesajn " "rajtojn por uzi tiun. Bonvolu slekti validan dosiero de ligosignoj." #: ../src/application.c:3815 #, fuzzy msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Formato de elektita dosiero ne estas korekta.\n" "gURLChecker nune ne povas kontroligi XBEL formaton." #: ../src/application.c:3822 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Formato de elektita dosiero ne estas korekta.\n" "gURLChecker nune ne povas kontroligi XBEL formaton." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Formato de elektita dosiero ne estas korekta.\n" "gURLChecker nune ne povas kontroligi XBEL formaton." #: ../src/application.c:3835 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Formato de elektita dosiero ne estas korekta.\n" "gURLChecker nune ne povas kontroligi XBEL formaton." #: ../src/application.c:3852 #, fuzzy msgid "[Remote bookmarks] Page information" msgstr "Informojn pri la paĝo" #: ../src/application.c:3855 #, fuzzy msgid "[Local bookmarks] Page information" msgstr "Informojn pri la paĝo" #: ../src/application.c:4071 ../src/check.c:1556 #, fuzzy msgid "Cleaning..." msgstr "Finanta..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:900 ../src/callbacks.c:918 #, fuzzy msgid "Please, select a project." msgstr "Bonvolu selekti anon." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "" #: ../src/check.c:404 #, fuzzy msgid "Local Image" msgstr "Loka dosiero" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 #, fuzzy msgid "Image" msgstr "Bildoj" #: ../src/check.c:410 #, fuzzy msgid "Frame link" msgstr "Malformita ligo" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "" #: ../src/check.c:414 msgid "Unknown Type" msgstr "" #: ../src/check.c:867 #, fuzzy msgid "Retrieving source..." msgstr "Ekstraktado de la ĉap-kampoj..." #: ../src/check.c:998 msgid "Continue" msgstr "Daŭrigi" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Interrompi" #: ../src/check.c:1045 #, fuzzy msgid "Checking file (FTP)..." msgstr "Kontroladas la lokan dosieron..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Ekstraktado de la ĉap-kampoj..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Ano jam estis kontrolita..." #: ../src/check.c:1316 #, fuzzy, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "" "MX servilo %s en la specifita domajno funkcias kaj auskŭltadas la 25 pordon." #: ../src/check.c:1322 #, fuzzy msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "" "MX servilo ne respondas aŭ ne ekzistas la domajnon de tiu repoŝtadreso." #: ../src/check.c:1328 #, fuzzy msgid "The E-Mail's domain is not valid." msgstr "La domajno ne la retpoŝtadreso ne ŝajnas valida" #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "" #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "" #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "" #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "" #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Endormanta %u sekundo(j)..." #: ../src/check.c:2119 #, fuzzy msgid "Checking E-Mail..." msgstr "Kontroladas la retpoŝtadreson..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Kontroladas la lokan dosieron..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 #, fuzzy msgid "Updating report..." msgstr "Ekstraktado de la ĉap-kampoj..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Serĉadas..." #: ../src/web_site.c:267 #, fuzzy msgid "Updating link..." msgstr "Kontroladas la retpoŝtadreson..." #: ../src/web_site.c:683 #, fuzzy msgid "Updating branch..." msgstr "Ekstraktado de la ĉap-kampoj..." #: ../src/web_site.c:733 #, fuzzy msgid "Updating all project..." msgstr "Finanta..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Kontrolado de %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "" #: ../src/web_site.c:848 #, fuzzy msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "La enmetita retligo ne respondas.\n" "Kontrolado estis nuligita." #: ../src/web_site.c:908 #, fuzzy msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "La enmetita retligo ne respondas.\n" "Kontrolado estis nuligita." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "" #: ../src/bookmarks.c:311 #, fuzzy msgid "Save bookmarks file" msgstr "Savkopii ligosignojn" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Eraro okuris kiam savkopias la dosieron de ligosignoj.\n" "Nenio estis farita." #: ../src/bookmarks.c:344 #, fuzzy msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Ŝanĝoj de legosignoj estos savkopita.\n" "Via malnova dosiero de legosignoj estas renomita kun la \".uc\" sufixo.\n" "\n" "Savkopii ?" #: ../src/bookmarks.c:379 #, fuzzy msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Eraro okuris kiam savkopias la dosieron de ligosignoj.\n" "Nenio estis farita." #: ../src/bookmarks.c:391 #, fuzzy msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Ŝanĝoj de legosignoj estos savkopita.\n" "Via malnova dosiero de legosignoj estas renomita kun la \".uc\" sufixo.\n" "\n" "Savkopii ?" #: ../src/bookmarks.c:1058 #, fuzzy msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Enmetita XML dosiero ne havas validan formon, aŭ la kodigo ne estis " "trovita..\n" "Kontrolado estis stopita." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Enmetita XML dosiero estas malplena.\n" #: ../src/main.c:126 #, fuzzy msgid "Wrote by Emmanuel Saracco ." msgstr "" "Programo fare de Emmanuel Saracco " #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Tiu programo estas libera; Por pliaj informoj, vidu la fonton. NENIA " "GARANTIO, i.a. nenia implica garantio pri SURMERKATIGEBLO aŭ TAŬGECO POR IU " "KONKRETA CELO." #: ../src/main.c:136 #, fuzzy, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Uzado: %s [OPCIO] [URL]\n" "Gnome 2 programo por kontroli la teksejojn.\n" "\n" " -h, --help\tafiŝas tiun helpilon\n" " -V, --version\tafiŝas la version de %s\n" "Bonvolu signali la program-erarojn al \n" #: ../src/report.c:244 #, fuzzy msgid "Cannot execute xsltproc; the following error occured:" msgstr "Neeblas lanĉi vian krozilon; la jena eraro okazis:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Kontrolitaj ligoj : %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Kontrolitaj ligoj : %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Nur la ĝustaj ligoj" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Nur la malĝustaj ligoj" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Nur la ĝustaj ligoj" #: ../src/report.c:499 msgid "Ignored links" msgstr "Ignotiraj ligoj" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Transpasitaj limtempoj" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Pasinta tempo : %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Analizo de HTML kodo..." #: ../src/html_parser.c:129 #, fuzzy msgid "Parsing CSS code..." msgstr "Analizo de HTML kodo..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u ano(j) trovitaj" #: ../src/search.c:528 msgid "Search ended" msgstr "Serĉado finis" #. status bar message #: ../src/project.c:361 #, fuzzy, c-format msgid "Loading [%s] project..." msgstr "Finanta..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" #: ../src/project.c:609 #, fuzzy msgid "Please, enter a title for the current project." msgstr "Bonvolu enmeti nomo de dosierujo kie vi volas serĉi" #: ../src/project.c:1391 #, fuzzy msgid "Save the current project ?" msgstr "Nova projekto" #: ../src/project.c:1400 #, fuzzy msgid "Saving project..." msgstr "Finanta..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "" #: ../gurlchecker.desktop.in.h:2 #, fuzzy msgid "gurlchecker" msgstr "gURLChecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr "" #: ../ui/gurlchecker.glade.h:4 #, fuzzy msgid "CSS Extensions to check" msgstr "Bonvolu enmeti nomo de dosierujo kie vi volas serĉi" #: ../ui/gurlchecker.glade.h:5 #, fuzzy msgid "Content management" msgstr "Administrado de ujo" #: ../ui/gurlchecker.glade.h:6 #, fuzzy msgid "Documents to ignore" msgstr "Dokumentoj rifuzotaj" #: ../ui/gurlchecker.glade.h:7 #, fuzzy msgid "Expires :" msgstr "META tags" #: ../ui/gurlchecker.glade.h:8 #, fuzzy msgid "Extensions to search for" msgstr "Bonvolu enmeti nomo de dosierujo kie vi volas serĉi" #: ../ui/gurlchecker.glade.h:9 #, fuzzy msgid "Files to check" msgstr "Dokumentoj rifuzotaj" #: ../ui/gurlchecker.glade.h:10 #, fuzzy msgid "HTML extensions to check" msgstr "Bonvolu enmeti nomo de dosierujo kie vi volas serĉi" #: ../ui/gurlchecker.glade.h:11 #, fuzzy msgid "Images to ignore" msgstr "Bildoj rifuzotaj" #: ../ui/gurlchecker.glade.h:12 #, fuzzy msgid "Location :" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:13 #, fuzzy msgid "Location:" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:14 #, fuzzy msgid "Meta Tags" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:15 #, fuzzy msgid "Modified :" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:16 #, fuzzy msgid "Name :" msgstr "META tags" #: ../ui/gurlchecker.glade.h:17 #, fuzzy msgid "Options" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:18 #, fuzzy msgid "Page:" msgstr "META tags" #: ../ui/gurlchecker.glade.h:19 #, fuzzy msgid "Path :" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:20 #, fuzzy msgid "Properties" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:21 #, fuzzy msgid "Referrer :" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:22 #, fuzzy msgid "Security:" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:23 #, fuzzy msgid "Server type :" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:24 #, fuzzy msgid "Server:" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:25 #, fuzzy msgid "Size :" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:26 #, fuzzy msgid "Source :" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:27 #, fuzzy msgid "Status :" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:28 #, fuzzy msgid "Type :" msgstr "META tags" #: ../ui/gurlchecker.glade.h:29 #, fuzzy msgid "Value :" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:30 #, fuzzy msgid "Warnings" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Ĉiuj ligoj" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Dosiero de ligosignoj" #: ../ui/gurlchecker.glade.h:47 #, fuzzy msgid "Branch update" msgstr "Parenco:" #: ../ui/gurlchecker.glade.h:48 #, fuzzy msgid "By protocol" msgstr "Protokoloj" #: ../ui/gurlchecker.glade.h:49 #, fuzzy msgid "By status" msgstr "Statuso" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" #: ../ui/gurlchecker.glade.h:53 #, fuzzy msgid "CSV export" msgstr "Raporto de kontrolo" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Nuligi" #: ../ui/gurlchecker.glade.h:55 #, fuzzy msgid "Cancel check" msgstr "Nuligi" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Usklecodistinga" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Kontrolo" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Kontroli MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Raporto de kontrolo" #: ../ui/gurlchecker.glade.h:61 msgid "Check this option for links numbering" msgstr "" #: ../ui/gurlchecker.glade.h:62 msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" #: ../ui/gurlchecker.glade.h:63 msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" #: ../ui/gurlchecker.glade.h:67 msgid "Check this option to check FTP links" msgstr "" #: ../ui/gurlchecker.glade.h:68 msgid "Check this option to check MX of e-mails domains" msgstr "" #: ../ui/gurlchecker.glade.h:69 msgid "Check this option to check for e-mails syntax" msgstr "" #: ../ui/gurlchecker.glade.h:70 msgid "Check this option to check secure URLs too" msgstr "" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "" #: ../ui/gurlchecker.glade.h:76 msgid "Check this option to enable virus scan of pages content" msgstr "" #: ../ui/gurlchecker.glade.h:77 msgid "Check this option to export links label" msgstr "" #: ../ui/gurlchecker.glade.h:78 msgid "Check this option to export links labels" msgstr "" #: ../ui/gurlchecker.glade.h:79 msgid "Check this option to export only external links" msgstr "" #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" #: ../ui/gurlchecker.glade.h:82 msgid "Check this option to retreive images content for local preview" msgstr "" #: ../ui/gurlchecker.glade.h:83 msgid "Check this option to scan only one page" msgstr "" #: ../ui/gurlchecker.glade.h:84 #, fuzzy msgid "Choose a location" msgstr "Elekti dosieron de ligosignoj" #: ../ui/gurlchecker.glade.h:85 #, fuzzy msgid "Clear export history" msgstr "Purigas historion de projekto" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Purigas historion de projekto" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Purigas historion de serĉo" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Enruli la tutan liston" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Rigardi kiel eraro" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "" #: ../ui/gurlchecker.glade.h:91 #, fuzzy msgid "Cookie" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:92 #, fuzzy msgid "Cookies" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "DEBUG modo" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "" #: ../ui/gurlchecker.glade.h:95 #, fuzzy msgid "Delete project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:96 #, fuzzy msgid "Description:" msgstr "Priskribo" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Dosierujoj" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "" #: ../ui/gurlchecker.glade.h:102 #, fuzzy msgid "Document" msgstr "Dokumentoj" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Dokumentoj" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domajnoj" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Atributoj de ŝuto kiam kontroladas" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Dinamikaj valoroj" #: ../ui/gurlchecker.glade.h:110 #, fuzzy msgid "E-Mails" msgstr "Retpoŝtadreso" #: ../ui/gurlchecker.glade.h:111 #, fuzzy msgid "E-Mails syntax" msgstr "Sintakso de retpoŝtadreso" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Enmetu ret-ligon kiun vi volas kontroli" #: ../ui/gurlchecker.glade.h:113 #, fuzzy msgid "Enter a local file path or URL to check" msgstr "Enmetu ret-ligon kiun vi volas kontroli" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Elruli la tutan liston" #: ../ui/gurlchecker.glade.h:117 #, fuzzy msgid "Export" msgstr "META tags" #: ../ui/gurlchecker.glade.h:118 #, fuzzy msgid "Files" msgstr "Filtroj" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtroj" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" #: ../ui/gurlchecker.glade.h:122 #, fuzzy msgid "Frame" msgstr "Malformita ligo" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Ĝenerala" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" #: ../ui/gurlchecker.glade.h:127 #, fuzzy msgid "History" msgstr "META tags" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "Retpoŝtadresoj" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignori tiun anon" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Videbligo de bildo" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Bildoj" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "" #: ../ui/gurlchecker.glade.h:137 #, fuzzy msgid "Link update" msgstr "Nomo de ligoj" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Ligoj" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Nomo de ligoj" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Loka dosiero" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "" #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "Ujo de META tags" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Maksimuma profundo de esplorado" #: ../ui/gurlchecker.glade.h:146 #, fuzzy msgid "Network" msgstr "Ĉap-kampo" #: ../ui/gurlchecker.glade.h:147 #, fuzzy msgid "New" msgstr "Reto" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nova projekto de ligosignoj" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nova apero" #: ../ui/gurlchecker.glade.h:150 #, fuzzy msgid "New local file project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Nur kontrolas lokajn ligojn" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Nur kontrolas tiun dosierujon kaj liajn sub-dosierujojn" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "Nur kontrolas lokajn ligojn" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "" #: ../ui/gurlchecker.glade.h:158 #, fuzzy msgid "Open a project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:159 #, fuzzy msgid "Open project" msgstr "Nova projekto" #: ../ui/gurlchecker.glade.h:160 #, fuzzy msgid "Page content" msgstr "Ujo de paĝo" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:163 #, fuzzy msgid "Parent update" msgstr "Parenco:" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "" #: ../ui/gurlchecker.glade.h:165 #, fuzzy msgid "Personal data" msgstr "Propraj datenoj" #: ../ui/gurlchecker.glade.h:166 #, fuzzy msgid "Project properties" msgstr "Atributoj de la paĝo..." #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protokoloj" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "" #: ../ui/gurlchecker.glade.h:170 #, fuzzy msgid "Remove all 404 links" msgstr "Kontroladas la retpoŝtadreson..." #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Ekstrakti ujon de ne-HTML dosieroj" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Ekstrakti ujon de bildoj" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "" #: ../ui/gurlchecker.glade.h:175 #, fuzzy msgid "Save bookmarks" msgstr "Savkopii ligosignojn" #: ../ui/gurlchecker.glade.h:176 #, fuzzy msgid "Save report in..." msgstr "Ekstraktado de la ĉap-kampoj..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Nuna serĉado..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Serĉado..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Samaj ret-ligoj" #: ../ui/gurlchecker.glade.h:182 #, fuzzy msgid "Status code" msgstr "Statuso" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "" #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "" #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Atendata tempo inter du kontroloj,\n" "en sekundoj:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Limtempo esprimata pri sekundoj" #: ../ui/gurlchecker.glade.h:190 #, fuzzy msgid "Timeout:" msgstr "Transpasitaj limtempoj" #: ../ui/gurlchecker.glade.h:192 #, fuzzy msgid "Title:" msgstr "META tags" #: ../ui/gurlchecker.glade.h:193 msgid "Uncheck this option to check external links too" msgstr "" #: ../ui/gurlchecker.glade.h:194 msgid "Uncheck this option to check external pages too" msgstr "" #: ../ui/gurlchecker.glade.h:195 msgid "Update all children for this link" msgstr "" #: ../ui/gurlchecker.glade.h:196 #, fuzzy msgid "Update all links..." msgstr "Kontroladas la retpoŝtadreson..." #: ../ui/gurlchecker.glade.h:197 #, fuzzy msgid "Update main page..." msgstr "Kontroladas la retpoŝtadreson..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "" #: ../ui/gurlchecker.glade.h:200 #, fuzzy msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Finanta la kontrolado.\n" "\n" "Bonvolu atendi..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "" #: ../ui/gurlchecker.glade.h:205 #, fuzzy msgid "View all link locations" msgstr "Vidu ĉiujn ret-ligojn" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Vidi enlinia" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Vidi la parencon enlinia" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "" #: ../ui/gurlchecker.glade.h:212 #, fuzzy msgid "W3C validation" msgstr "Nenia valida informo." #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "" #: ../ui/gurlchecker.glade.h:214 #, fuzzy msgid "Warnings" msgstr "Informojn pri la paĝo" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Teksejo" #: ../ui/gurlchecker.glade.h:216 msgid "When a cookie is added" msgstr "" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Kun SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Afiŝado" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Eldoni" #: ../ui/gurlchecker.glade.h:223 #, fuzzy msgid "_File" msgstr "Filtroj" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Projekto" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "Preferaĵoj por gURLChecker" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "" #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "" #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "Elekti kontrolota dosieron de ligosignoj" #, fuzzy #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker forlasis la skanon, ĉar ĝi ne disponigas pri sufiĉe da spaco " #~ "en la subdisko de la funkcianta dosierujo.\n" #~ "\n" #~ "gURLChecker konsideris sekur-marĝenon kiam ĝi kalkulas la necesan spacon." #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Nur kontrolas tiun dosierujon kaj liajn sub-dosierujojn" #, fuzzy #~ msgid "Please, check URL syntax and try again." #~ msgstr "" #~ "Bonvolu kontroli ke la enmetita retligo estas valida kaj poste restari." #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #, fuzzy #~ msgid "HTTPS" #~ msgstr "HTTP" #~ msgid "Choose a bookmarks file" #~ msgstr "Elekti dosieron de ligosignoj" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "Elekti dosieron de ligosignoj" #, fuzzy #~ msgid "Save links in..." #~ msgstr "Ekstraktado de la ĉap-kampoj..." #~ msgid "Delete" #~ msgstr "Forigi" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "Preferaĵoj por gURLChecker" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "Atributoj de la paĝo..." #, fuzzy #~ msgid "link" #~ msgstr "Ligoj" #, fuzzy #~ msgid "Parent" #~ msgstr "Parenco:" #, fuzzy #~ msgid "All this link locations" #~ msgstr "Vidu ĉiujn ret-ligojn" #, fuzzy #~ msgid "This page online" #~ msgstr "Vidi la parencon enlinia" #, fuzzy #~ msgid "Parent page online" #~ msgstr "Vidi la parencon enlinia" #, fuzzy #~ msgid "Page source" #~ msgstr "Vidi la fonton" #, fuzzy #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "La fora komputilo rifuzis servi la paĝon.\n" #~ "Iuj retpaĝaj serviloj ne permesas la HEAD metodon en iuj dosieroj...kaj " #~ "gURLChecker necesas sendi tiun metodon :-(\n" #~ "\n" #~ "Bonvolu kontroli tiun poste, aŭ filtru tiun domajnon" #, fuzzy #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "La fora komputilo rifuzis servi la paĝon.\n" #~ "Iuj retpaĝaj serviloj ne permesas la HEAD metodon en iuj dosieroj...kaj " #~ "gURLChecker necesas sendi tiun metodon :-(\n" #~ "\n" #~ "Bonvolu kontroli tiun poste, aŭ filtru tiun domajnon" #, fuzzy #~ msgid "gURLChecker project page" #~ msgstr "gURLChecker" #, fuzzy #~ msgid "Graphic view" #~ msgstr "Grafikaj artoj:" #, fuzzy #~ msgid "Pages relations" #~ msgstr "Informojn pri la paĝo" #, fuzzy #~ msgid "FTP" #~ msgstr "META tags" #, fuzzy #~ msgid "HTTP" #~ msgstr "META tags" #, fuzzy #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "Bonvolu enmeti domajnon" #~ msgid "Please, enter a directory name." #~ msgstr "Bonvolu enmeti nomo de dosierujo" #~ msgid "The domain you entered seems not to be valid." #~ msgstr "La domajno kiun vi enmetis ne ŝajnas valida" #, fuzzy #~ msgid "Please, select a project to delete." #~ msgstr "Bonvolu selekti anon." #~ msgid "Check email MX" #~ msgstr "Kontroli MX poŝtadreson" #~ msgid "Email" #~ msgstr "Retpoŝtadreso" #~ msgid "Emails" #~ msgstr "Retpoŝtadresoj" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "Kontroli MX poŝtadreson" #, fuzzy #~ msgid "Authentication" #~ msgstr "Informojn pri la paĝo" #, fuzzy #~ msgid "Check" #~ msgstr "Ĉap-kampo" #, fuzzy #~ msgid "Cookies" #~ msgstr "Atributoj de la paĝo..." #, fuzzy #~ msgid "Debug" #~ msgstr "Ĉap-kampo" #~ msgid "*" #~ msgstr "*" gurlchecker-0.13.1/po/POTFILES.in0000644000175000017500000000054411524250230013203 00000000000000# List of source files containing translatable strings. src/cookies.c src/uccroco.c src/connection.c src/application.c src/callbacks.c src/check.c src/web_site.c src/bookmarks.c src/cookies.c src/main.c src/report.c src/url.c src/utils.c src/html_parser.c src/search.c src/project.c src/tooltips.c gurlchecker.desktop.in src/getopt.c ui/gurlchecker.glade gurlchecker-0.13.1/po/sk.po0000644000175000017500000016554711407055352012432 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: 0.8.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2005-05-19 20:09+0100\n" "Last-Translator: Stanislav Valášek \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Slovak\n" "X-Poedit-Country: SLOVAKIA\n" "X-Poedit-SourceCharset: utf-8\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "Nasledujúci koláčik bude vymazaný" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "Nasledujúci koláčik bude aktualizovaný" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "Nasledujúci koláčik bude pridaný" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Typ" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 #, fuzzy msgid "Custom action" msgstr "Vyber súbor so záložkami" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Označenie" #: ../src/application.c:318 msgid "Date" msgstr "Dátum" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Názov" #: ../src/application.c:529 msgid "Content" msgstr "Obsah" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "Na konci tohto sedenia" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "Zadajte login a heslo pre %s na %s" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "" #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "Žiadny odkaz (referrer)" #: ../src/application.c:1536 msgid "Missing URL" msgstr "Chýbajúce URL" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 #, fuzzy msgid "Not specified" msgstr "Nešpecifikované" #: ../src/application.c:1577 #, fuzzy msgid "Unknown" msgstr "Neznáme" #: ../src/application.c:1582 msgid "(gURLChecker internals)" msgstr "(gURLChecker interne)" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "Disková vyrovnávacia pamäť" #: ../src/application.c:1592 #, fuzzy msgid "Not cached" msgstr "Nie z vyrovnávacej pamäte" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 #, fuzzy msgid "E-Mail" msgstr "Email" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 #, fuzzy msgid "Please, select a item." msgstr "Prosím, najskôr vyberte položku" #: ../src/application.c:1906 #, fuzzy msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "Nemôžem spustiť Váš webový prehliadač, nastala nasledujúca chyba:" #: ../src/application.c:1956 ../src/application.c:1988 #, fuzzy msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "Zodpovedajúci súbor je prázdny alebo neexistuje vo vyrovnávacej pamäti " "adresára" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Zobraziť zdroj" #: ../src/application.c:2029 msgid "Redirect" msgstr "" #: ../src/application.c:2030 #, fuzzy msgid "Edit" msgstr "_Uprav" #: ../src/application.c:2031 msgid "Create target" msgstr "" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Hostiteľ nedosiahnuteľný" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "Vzdialený hostiteľ vôbec neodpovedal...\n" "Môžete skúsiť zmeniť časový limit v gURLChecker nastaveniach, alebo je možno " "skutočne nedosiahnuteľný.\n" "\n" "Skúste ho skontrolovať neskôr." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "FILE:// protokol" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Protokol súboru nájdený.\n" "Nastavili ste varovania, ak bude v odkaze nájdený protokol \"FILE://\"." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Stráka dostupná" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "S touto stránkou neboli žiadne problémy.\n" "Server beží a dokument môže byť nahraný bez problémov." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Stránka nebola nájdená" #: ../src/application.c:2123 ../src/application.c:2240 #, fuzzy msgid "The page does not exist on the server." msgstr "Stránka už na serveri neexistuje" #: ../src/application.c:2129 #, fuzzy msgid "Bad E-Mail link" msgstr "Nesprávny email odkaz" #: ../src/application.c:2130 #, fuzzy msgid "The E-Mail specified in the link is not well formatted." msgstr "Emailová adresa uvedená v odkaze nie je správne formátovaná" #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problém s MX" #: ../src/application.c:2137 #, fuzzy msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "MX domény pre túto email adresu nie je platná, alebo nie je platná samotná " "doména." #: ../src/application.c:2144 #, fuzzy msgid "E-Mail link ok" msgstr "Email odkaz ok" #: ../src/application.c:2144 #, fuzzy msgid "No problem with this E-Mail." msgstr "Žiadny problém s touto email adresou" #: ../src/application.c:2150 msgid "Item ignored" msgstr "Položka ignorovaná" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "Vybrali ste ignorovanie tejto položky počas jej kontrolovania" #: ../src/application.c:2158 msgid "Malformed link" msgstr "Zle poskladaný odkaz" #: ../src/application.c:2159 msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "HTML odkaz je nesprávne poskladaný.\n" "Snáď chýba hodnota HREF?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Žiadne platné informácie" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker nedokáže interpretovať status kód vrátený vzdialeným " "hostiteľom.\n" "Prosím, oznámte hodnotu poľa \"Status\" autorovi gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "Stránka je permanentne presunutá" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "S touto stránkou neboli žiadne problémy.\n" "Požadovaný zdroj bol priradený novému stálemu URI." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "Stránka dočasne presunutá" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Obmedzený prístup" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Na zobrazenie tejto stránky sa potrebujete autorizovať" #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Prístup zakázaný" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Stránka je dostupná, ale bez obsahu" #: ../src/application.c:2225 #, fuzzy msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "S touto stránkou neboli žiadne problémy, ale nemá žiadny obsah...\n" "\n" "Skúste ju skontrolovať neskôr." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "Nesprávny formát URL" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "Server nepochopil požiadavku z dôvodu nesprávnej syntaxe." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Metóda nie je dovolená" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "Vzdialený hostiteľ nám zamietol poskytnutie stránky.\n" "\n" "Skúste ju skontrolovať neskôr." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Interná chyba servera" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "Stránka obsahuje nesprávny kód, alebo je rozkonfigurovaný server.\n" "\n" "Skúste ju skontrolovať neskôr." #: ../src/application.c:2262 msgid "Method not supported" msgstr "Metóda nie je podporovaná" #: ../src/application.c:2272 #, fuzzy msgid "Bad Gateway" msgstr "Nesprávna Brána (gateway)" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "Server, chovajúci sa ako brána – gateway alebo proxy, obdržal neplatnú " "odpoveď od hlavného servera, ku ktorému pristupoval keď sa snažil splniť " "požiadavku.\n" "\n" "Skúste skontrolovať túto stránku neskôr." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Služba nedostupná" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "Server aktuálne nie je schopný vybaviť požiadavku, z dôvodu dočasného " "preťaženia ale údržby na serveri. Je tiež možné, že používate proxy, ktorá " "sa nemôže pripojiť na daného hostiteľa.\n" "\n" "Skúste neskôr, alebo zmeňte nastavenia proxy." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Požiadavka nebola splnená" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "Server, chovajúci sa ako brána – gateway alebo proxy, neobdržal odpoveď od " "hlavného servera, špecifikovaného pomocou URI (napr.. HTTP, FTP, LDAP) alebo " "niektorého pomocného servera (napr.. DNS), ktorý potreboval na prístup pri " "plnení požiadavku." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "Prístup zakázaný, alebo príliš veľa spojení" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" "Tento server neakceptuje anonymných užívateľov, alebo už je pripojený " "maximálny počet povolených klientov.\n" "\n" "Skúste vykonať kontrolu neskôr." #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Počas vyžiadania stránky vypršal časový limit" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Pravdepodobne by ste mali zmeniť časový limit v nastaveniach gURLChecker. " "Možno je vzdialený hostiteľ aktuálne príliš zaťažený aby odpovedal na " "požiadavku z gURLChecker, prípadne vzdialený hostiteľ vôbec neesistuje.\n" "\n" "Skúste vykonať kontrolu neskôr." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "Nemôžem spustiť novú inštanciu gURLChecker; nastala nasledujúca chyba:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Prebieha kontrola..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" #: ../src/application.c:3074 msgid "Manpage:" msgstr "Man stránka:" #: ../src/application.c:3078 msgid "Code:" msgstr "Kód:" #: ../src/application.c:3083 #, fuzzy msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana , Japončina\n" "Alexander Hunziker , Nemčina\n" "Florent Jugla , Esperanto\n" "Daniel Pecos , Španielčina\n" "Gunner Poulsen , Dánština\n" "Emmanuel Saracco , Francúžtina\n" "Angelo Theodorou , Taliančina\n" "Stanislav Valášek , Slovenčina\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker je grafický program na kontrolu web odkazov.\n" "Môže kontrolovať celú web stránku, samotnú lokálnu stránku alebo súbor so " "záložkami z webového prehliadača" #: ../src/application.c:3327 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "Vyberte súbor so záložkami na kontrolu" #: ../src/application.c:3332 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "Vyberte súbor so záložkami na kontrolu" #: ../src/application.c:3337 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "Vyberte súbor so záložkami na kontrolu" #: ../src/application.c:3342 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "Vyberte súbor so záložkami na kontrolu" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nová doména na zamietnutie" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Pridanie domény na zamietnutie" #: ../src/application.c:3372 #, fuzzy msgid "This domain name is not valid." msgstr "Doména tohto emailu nie je platná." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Nový adresár na zamietnutie" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Pridanie adresára na zamietnutie" #: ../src/application.c:3543 #, fuzzy msgid "Please, enter a string to search." msgstr "Prosím zadajte textový reťazec, krotý má byť nájdený." #: ../src/application.c:3566 #, fuzzy msgid "Please, check that there is no mismatch in your URL and try again." msgstr "Prosím skontrolujte, či ste zadali URL správne a skúste znovu" #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "" #: ../src/application.c:3672 ../src/project.c:441 #, fuzzy msgid "[Local file] Page information" msgstr "Informácie o stránke" #: ../src/application.c:3675 ../src/project.c:444 #, fuzzy msgid "[Web site] Page information" msgstr "Informácie o stránke" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Prosím vyberte súbor so záložkami, ktorý má byť skontrolovaný" #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" #: ../src/application.c:3799 #, fuzzy msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "Súbor, ktorý ste zadali nie je správny alebo naň nemáte práva. Prosím " "vyberte platný súbor so záložkami." #: ../src/application.c:3815 #, fuzzy msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Formát vybraného súboru nie je správny.\n" "Aktuálne, gURLChecker vie spracovať iba XBEL formát." #: ../src/application.c:3822 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Formát vybraného súboru nie je správny.\n" "Aktuálne, gURLChecker vie spracovať iba XBEL formát." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Formát vybraného súboru nie je správny.\n" "Aktuálne, gURLChecker vie spracovať iba XBEL formát." #: ../src/application.c:3835 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Formát vybraného súboru nie je správny.\n" "Aktuálne, gURLChecker vie spracovať iba XBEL formát." #: ../src/application.c:3852 #, fuzzy msgid "[Remote bookmarks] Page information" msgstr "Informácie o stránke" #: ../src/application.c:3855 #, fuzzy msgid "[Local bookmarks] Page information" msgstr "Informácie o stránke" #: ../src/application.c:4071 ../src/check.c:1556 msgid "Cleaning..." msgstr "Čistím..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:900 ../src/callbacks.c:918 #, fuzzy msgid "Please, select a project." msgstr "Prosím vyberte projekt, ktorý má byť otvorený" #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "Ste istý, že tento projekt chcete vymazať?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Hypertextový Odkaz" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Lokálny Hypertextový odkaz" #: ../src/check.c:404 msgid "Local Image" msgstr "Lokálny obrázok" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Obrázok" #: ../src/check.c:410 #, fuzzy msgid "Frame link" msgstr "Rámový odkaz" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "Odkaz na kaskádové štýly" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Neznámy typ" #: ../src/check.c:867 msgid "Retrieving source..." msgstr "Získavam zdroj..." #: ../src/check.c:998 msgid "Continue" msgstr "Pokračovať" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Pozastaviť" #: ../src/check.c:1045 msgid "Checking file (FTP)..." msgstr "Kontrolujem súbor (FTP)..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Získavam hlavičku..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Položka už bola skontrolovaná..." #: ../src/check.c:1316 #, fuzzy, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "MX hostiteľ %s špecifikovanej domény beží a počúva na porte 25." #: ../src/check.c:1322 #, fuzzy msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "MX hosťiteľ neodpovedá, alebo doména pre tento email nie je platná." #: ../src/check.c:1328 #, fuzzy msgid "The E-Mail's domain is not valid." msgstr "Doména tohto emailu nie je platná." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "" #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "" #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "" #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "" #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Spím %u sekúnd..." #: ../src/check.c:2119 #, fuzzy msgid "Checking E-Mail..." msgstr "Kontrolujem email..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Kontrolujem lokálny súbor..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 msgid "Updating report..." msgstr "Aktualizujem správu..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Hľadanie..." #: ../src/web_site.c:267 msgid "Updating link..." msgstr "Aktualizujem odkaz..." #: ../src/web_site.c:683 msgid "Updating branch..." msgstr "Aktualizujem vetvu..." #: ../src/web_site.c:733 msgid "Updating all project..." msgstr "Aktualizujem všetky projekty..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Kontrolujem %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "HLAVNÁ STRÁNKA" #: ../src/web_site.c:848 msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "Prístup k URL špecifikovanému v projekte je obmedzený.\n" "Kontrola bola zrušená" #: ../src/web_site.c:908 msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "URL špecifikované v projekte neodpovedá.\n" "Kontrola bola zrušená." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "" #: ../src/bookmarks.c:311 #, fuzzy msgid "Save bookmarks file" msgstr "Uložiť _záložky" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Pri ukladaní súboru so záložkami nastala chyba.\n" "Nič sa neuložilo." #: ../src/bookmarks.c:344 #, fuzzy msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Zmeny v záložkách budú uložené.\n" "Vaše původné záložky budú premenované s PRÍPONOU \".uc\".\n" "\n" "Chcete ich uložiť?" #: ../src/bookmarks.c:379 #, fuzzy msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Pri ukladaní súboru so záložkami nastala chyba.\n" "Nič sa neuložilo." #: ../src/bookmarks.c:391 #, fuzzy msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Zmeny v záložkách budú uložené.\n" "Vaše původné záložky budú premenované s PRÍPONOU \".uc\".\n" "\n" "Chcete ich uložiť?" #: ../src/bookmarks.c:1058 #, fuzzy msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Vstupný XML súbor nie je validný - well formed, alebo nebolo nájdené jeho " "kódovanie..\n" "Kontrola bola zrušená." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Vstupný XML súbor je prázdny.\n" #: ../src/main.c:126 msgid "Wrote by Emmanuel Saracco ." msgstr "Autor: Emmanuel Saracco ." #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Toto je slobodný softvér; podmienky kopírovania nájtete v zdrojových kódoch. " "Nie je poskytnutá ŽIADNA záruka; dokonca ani PREDAJNOSŤ alebo VHODNOSŤ PRE " "KONKRĚTNY ÚČEL." #: ../src/main.c:136 #, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Použitie: %s [OPTION] [URL]\n" "Grafický kontrolór na webové odkazy.\n" "\n" " -h, --help zobraz pomoc\n" " -V, --version zobraz %s verziu\n" " -u, --http-user užívateľ pre základnú autorizáciu\n" " -p, --http-passwd heslo na základnú autorizáciu\n" " -A, --no-urls-args ignorovať URL argumenty\n" "\n" "Chyby hláste na \n" #: ../src/report.c:244 #, fuzzy msgid "Cannot execute xsltproc; the following error occured:" msgstr "Nemôžem spustiť Váš webový prehliadač, nastala nasledujúca chyba:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Skontrolovaných odkazov: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Skontrolovaných odkazov: %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Správne odkazy" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Nesprávne odkazy" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Zle formátované odkazy" #: ../src/report.c:499 msgid "Ignored links" msgstr "Ignorované odkazy" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Prekročený časový limit" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Uplynulý čas: %02d:%02d:%02d" #: ../src/utils.c:1671 #, fuzzy, c-format msgid "%lu bytes" msgstr "%u bajtov" #: ../src/utils.c:1673 #, fuzzy, c-format msgid "%.2f KB (%lu bytes)" msgstr "%.2f KB (%u bajtov)" #: ../src/utils.c:1676 #, fuzzy, c-format msgid "%.2f MB (%lu bytes)" msgstr "%.2f MB (%u bajtov)" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Parsujem HTML kód..." #: ../src/html_parser.c:129 msgid "Parsing CSS code..." msgstr "Parsujem CSS kód..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u položiek nájdených" #: ../src/search.c:528 msgid "Search ended" msgstr "Vyhľadávanie ukončené" #. status bar message #: ../src/project.c:361 #, c-format msgid "Loading [%s] project..." msgstr "Nahrávam [%s] projekt..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Vytvorený %s\n" "Aktualizovaný %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Prosím, zadajte názov aktuálneho projektu." #: ../src/project.c:1391 #, fuzzy msgid "Save the current project ?" msgstr "Uložiť aktuálny projekt" #: ../src/project.c:1400 msgid "Saving project..." msgstr "Ukladám projekt..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Stav: %s\n" "Umiestnenie: %s\n" "Rodičovské umiestnenie: %s\n" "Posledná aktualizácia: %s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "Grafický Web Kontrolór Web Odkazov" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gurlchecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: možnosť `%s' nie je jednoznačná\n" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: voľba `--%s' nepovoľuje argument\n" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: voľba `%c%s' nepovoľuje argument\n" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: voľba `%s' vyžaduje argument\n" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: nerozoznaná voľba `--%s'\n" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: nerozoznaná voľba `%c%s'\n" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: nesprávna voľba -- %c\n" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: nesprávna voľba -- %c\n" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: voľba vyžaduje argument -- %c\n" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: voľba `-W %s' nie je jednoznačná\n" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: voľba `-W %s' nepovoľuje argument\n" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr " " #: ../ui/gurlchecker.glade.h:4 #, fuzzy msgid "CSS Extensions to check" msgstr "Prosím zadajte textový reťazec, krotý má byť nájdený." #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Manažment obsahu" #: ../ui/gurlchecker.glade.h:6 #, fuzzy msgid "Documents to ignore" msgstr "Dokumenty na zamietnutie" #: ../ui/gurlchecker.glade.h:7 msgid "Expires :" msgstr "Vyprší :" #: ../ui/gurlchecker.glade.h:8 #, fuzzy msgid "Extensions to search for" msgstr "Prosím zadajte textový reťazec, krotý má byť nájdený." #: ../ui/gurlchecker.glade.h:9 #, fuzzy msgid "Files to check" msgstr "Dokumenty na zamietnutie" #: ../ui/gurlchecker.glade.h:10 #, fuzzy msgid "HTML extensions to check" msgstr "Prosím zadajte textový reťazec, krotý má byť nájdený." #: ../ui/gurlchecker.glade.h:11 #, fuzzy msgid "Images to ignore" msgstr "Obrázky na zamietnutie" #: ../ui/gurlchecker.glade.h:12 msgid "Location :" msgstr "Umiestnenie :" #: ../ui/gurlchecker.glade.h:13 msgid "Location:" msgstr "Umiestnenie:" #: ../ui/gurlchecker.glade.h:14 msgid "Meta Tags" msgstr "Meta Tagy" #: ../ui/gurlchecker.glade.h:15 msgid "Modified :" msgstr "Modifikovaný :" #: ../ui/gurlchecker.glade.h:16 msgid "Name :" msgstr "Názov :" #: ../ui/gurlchecker.glade.h:17 #, fuzzy msgid "Options" msgstr "Umiestnenie:" #: ../ui/gurlchecker.glade.h:18 #, fuzzy msgid "Page:" msgstr "Názov :" #: ../ui/gurlchecker.glade.h:19 msgid "Path :" msgstr "Cesta :" #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Vlastnosti" #: ../ui/gurlchecker.glade.h:21 msgid "Referrer :" msgstr "Referrer :" #: ../ui/gurlchecker.glade.h:22 #, fuzzy msgid "Security:" msgstr "Typ serveru :" #: ../ui/gurlchecker.glade.h:23 msgid "Server type :" msgstr "Typ serveru :" #: ../ui/gurlchecker.glade.h:24 #, fuzzy msgid "Server:" msgstr "Typ serveru :" #: ../ui/gurlchecker.glade.h:25 msgid "Size :" msgstr "Veľkosť :" #: ../ui/gurlchecker.glade.h:26 msgid "Source :" msgstr "Zdroj :" #: ../ui/gurlchecker.glade.h:27 msgid "Status :" msgstr "Stav :" #: ../ui/gurlchecker.glade.h:28 msgid "Type :" msgstr "Typ :" #: ../ui/gurlchecker.glade.h:29 msgid "Value :" msgstr "Hodnota :" #: ../ui/gurlchecker.glade.h:30 #, fuzzy msgid "Warnings" msgstr "Varovania" #: ../ui/gurlchecker.glade.h:31 #, fuzzy msgid "You can edit cookie's properties before accepting it:" msgstr "Môžete upravovať vlastnosti koláčikov pred ich akceptovaním." #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "Akceptovať" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "Akceptovať všetky koláčiky" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "Pokročilé nastavenia" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Všetky odkazy" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "Autorizácia" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "Blokovať hostiteľa po vypršaní časového limitu po" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Súbor so záložkami" #: ../ui/gurlchecker.glade.h:47 msgid "Branch update" msgstr "Aktualizácia vetvy" #: ../ui/gurlchecker.glade.h:48 #, fuzzy msgid "By protocol" msgstr "Protokol" #: ../ui/gurlchecker.glade.h:49 #, fuzzy msgid "By status" msgstr "Stav" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" #: ../ui/gurlchecker.glade.h:53 #, fuzzy msgid "CSV export" msgstr "Kontrolná správa" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Zrušiť" #: ../ui/gurlchecker.glade.h:55 msgid "Cancel check" msgstr "Zrušiť kontrolu" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Rozlišovať veľkosť písmen" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Kontrola" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Kontolovať MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Kontrolná správa" #: ../ui/gurlchecker.glade.h:61 #, fuzzy msgid "Check this option for links numbering" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:62 #, fuzzy msgid "Check this option if you are not interested in bookmarks pages content" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:63 #, fuzzy msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Označte túto voľbu, ak nechcete kontrolovať stránky v iných umiestneniach, " "než aké je špecifikované projektovým URL." #: ../ui/gurlchecker.glade.h:64 #, fuzzy msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" "Označte túto voľbu, ak sa chcete vyhnúť nepríjemným nekonečným cyklom " "(napríklad keď sú niektoré argumenty náhodne generované)" #: ../ui/gurlchecker.glade.h:65 #, fuzzy msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" "Označte túto voľbu, ak sa chcete vyhnúť nepríjemným nekonečným cyklom " "(napríklad keď sú niektoré argumenty náhodne generované)" #: ../ui/gurlchecker.glade.h:66 #, fuzzy msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" "Ak je označené: vyzve na Základnú Autorizáciu, keď i ju stránka vyžiada." #: ../ui/gurlchecker.glade.h:67 #, fuzzy msgid "Check this option to check FTP links" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:68 #, fuzzy msgid "Check this option to check MX of e-mails domains" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:69 #, fuzzy msgid "Check this option to check for e-mails syntax" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:70 #, fuzzy msgid "Check this option to check secure URLs too" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "" #: ../ui/gurlchecker.glade.h:76 #, fuzzy msgid "Check this option to enable virus scan of pages content" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:77 #, fuzzy msgid "Check this option to export links label" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:78 #, fuzzy msgid "Check this option to export links labels" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:79 #, fuzzy msgid "Check this option to export only external links" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" #: ../ui/gurlchecker.glade.h:82 #, fuzzy msgid "Check this option to retreive images content for local preview" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:83 #, fuzzy msgid "Check this option to scan only one page" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:84 #, fuzzy msgid "Choose a location" msgstr "Vyber súbor so záložkami" #: ../ui/gurlchecker.glade.h:85 #, fuzzy msgid "Clear export history" msgstr "Vyčisti históriu projektu" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Vyčisti históriu projektu" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Vyčisti históriu hľadania" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Zbaľ celý zoznam" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Považuj za chybu" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "" #: ../ui/gurlchecker.glade.h:91 msgid "Cookie" msgstr "Koláčik" #: ../ui/gurlchecker.glade.h:92 #, fuzzy msgid "Cookies" msgstr "Koláčik" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "DEBUG mód" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "" #: ../ui/gurlchecker.glade.h:95 #, fuzzy msgid "Delete project" msgstr "_Vymazať projekt" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Popis:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Adresáre" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Zobraz tooltipy" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "Neakceptuj žiadne koláčiky" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "Viac tento dialóg nezobrazuj" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "Nenačítavaj obsah stránok (zrýchli kontrolu)" #: ../ui/gurlchecker.glade.h:102 msgid "Document" msgstr "Dokument" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Dokumenty" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domény" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "V prebehu kontroly ukladaj vlastnosti odkazu" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Dynamické hodnoty" #: ../ui/gurlchecker.glade.h:110 #, fuzzy msgid "E-Mails" msgstr "Email" #: ../ui/gurlchecker.glade.h:111 #, fuzzy msgid "E-Mails syntax" msgstr "Email syntax" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Zadaj URL na kontrolu" #: ../ui/gurlchecker.glade.h:113 #, fuzzy msgid "Enter a local file path or URL to check" msgstr "Zadaj súbor na kontrolu" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Rozbaľ celý zoznam" #: ../ui/gurlchecker.glade.h:117 #, fuzzy msgid "Export" msgstr "Vyprší :" #: ../ui/gurlchecker.glade.h:118 #, fuzzy msgid "Files" msgstr "Filtre" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtre" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" #: ../ui/gurlchecker.glade.h:122 msgid "Frame" msgstr "Rám" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Všeobecné" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" #: ../ui/gurlchecker.glade.h:127 #, fuzzy msgid "History" msgstr "História" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "Email adresa" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "Ignoruj URLs argumenty" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignoruj túto položku" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Náhľad obrázku" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Obrázky" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "" #: ../ui/gurlchecker.glade.h:137 msgid "Link update" msgstr "Aktualizácia odkazu" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Odkazy" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Meno odkazu" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Lokálny súbor" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Umiestnenie:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "Login : " #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "Obsah META tagov" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Maximálna hĺbka úrovene kontroly:" #: ../ui/gurlchecker.glade.h:146 #, fuzzy msgid "Network" msgstr "Sieť" #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Nový" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nový záložkový projekt" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nová inštancia" #: ../ui/gurlchecker.glade.h:150 msgid "New local file project" msgstr "Nový projekt lokálny súbor" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nový projekt" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nový webový projekt " #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Kontroluj iba lokálne odkazy" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Kontroluj iba adresáre a podadresáre" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "Kontroluj iba lokálne odkazy" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Otvoriť" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Otvoriť projekt" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Otvoriť projekt" #: ../ui/gurlchecker.glade.h:160 #, fuzzy msgid "Page content" msgstr "Obsah stránky" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Informácie o stránke" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Vlastnosti stránky" #: ../ui/gurlchecker.glade.h:163 msgid "Parent update" msgstr "Aktualizácia rodiča" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "Heslo : " #: ../ui/gurlchecker.glade.h:165 #, fuzzy msgid "Personal data" msgstr "Osobné údaje" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Vlastnosti projektu" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "Vyzvať na autorizáciu" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protokoly" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "Zamietnuť" #: ../ui/gurlchecker.glade.h:170 #, fuzzy msgid "Remove all 404 links" msgstr "Aktualizovať všetky odkazy" #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Načítavaj obsah ne-HTML súborov" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Načítavaj obsah obrázkov" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Uložiť" #: ../ui/gurlchecker.glade.h:175 #, fuzzy msgid "Save bookmarks" msgstr "Uložiť _záložky" #: ../ui/gurlchecker.glade.h:176 #, fuzzy msgid "Save report in..." msgstr "Aktualizujem správu..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Prebieha hľadanie..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Nájsť" #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Umiestnenie podobných odkazov" #: ../ui/gurlchecker.glade.h:182 #, fuzzy msgid "Status code" msgstr "Stav" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "Kaskádové štýly" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "" #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "" #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Čas na čakanie, medzi dvoma kontrolami, \n" "v sekundách:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Časový limit v sekundách:" #: ../ui/gurlchecker.glade.h:190 msgid "Timeout:" msgstr "Časový limit:" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Nadpis:" #: ../ui/gurlchecker.glade.h:193 #, fuzzy msgid "Uncheck this option to check external links too" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:194 #, fuzzy msgid "Uncheck this option to check external pages too" msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #: ../ui/gurlchecker.glade.h:195 #, fuzzy msgid "Update all children for this link" msgstr "Aktualizovať všetkých potomkov pre tento odkaz" #: ../ui/gurlchecker.glade.h:196 #, fuzzy msgid "Update all links..." msgstr "Aktualizujem odkaz..." #: ../ui/gurlchecker.glade.h:197 msgid "Update main page..." msgstr "Aktualizovať hlavnú stránku..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "Aktualizovať stránku obsahujúcu tento odkaz" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "Aktualizovať tento odkaz" #: ../ui/gurlchecker.glade.h:200 msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Aktualizujem počítadlá v správe\n" "\n" "Prosím čakajte..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "Použiť pasívny mód" #: ../ui/gurlchecker.glade.h:205 #, fuzzy msgid "View all link locations" msgstr "Zobraziť všetky umiestnenia tohto odkazu" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Zobraziť online" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Zobraziť rodičovskú stránku online" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "" #: ../ui/gurlchecker.glade.h:212 #, fuzzy msgid "W3C validation" msgstr "Žiadne platné informácie" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "Zastav" #: ../ui/gurlchecker.glade.h:214 #, fuzzy msgid "Warnings" msgstr "Varovania" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Webová stránka" #: ../ui/gurlchecker.glade.h:216 #, fuzzy msgid "When a cookie is added" msgstr "Keď je koláčik pridaný" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "Keď je koláčik vymazaný" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "Keď je koláčik aktualizovaný" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "s SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Zobraz" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Uprav" #: ../ui/gurlchecker.glade.h:223 #, fuzzy msgid "_File" msgstr "Filtre" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Projekt" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "pokusoch" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "gURLChecker Nastavenia" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "sekúnd, medzi kontrolami." #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "sekúnd" #, fuzzy #~ msgid "" #~ "Emmanuel Saracco \n" #~ "\n" #~ "Contributors:\n" #~ "Stephane Loeuillet " #~ msgstr "" #~ "Emmanuel Saracco , hlavný " #~ "vývojár\n" #~ "Stephane Loeuillet , spolu-" #~ "vývojár\n" #~ "\n" #~ "Grafika:\n" #~ "Jan Henrik Helmers \n" #~ "Emmanuel Saracco " #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "Vyberte súbor so záložkami na kontrolu" #, fuzzy #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker zrušil kontrolu, pretože nemáte dostatok miesta vo vašom " #~ "pracovnom adresári.\n" #~ "\n" #~ "Na odhad voľného miesta gURLChecker započítal aj bezpečnostnú rezervu." #, fuzzy #~ msgid "Flash option: check it to check only one page" #~ msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Kontroluj iba adresáre a podadresáre" #, fuzzy #~ msgid "Please, check URL syntax and try again." #~ msgstr "Prosím skontrolujte, či ste zadali URL správne a skúste znovu" #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "HTTPS" #~ msgstr "HTTPS" #~ msgid "Choose a bookmarks file" #~ msgstr "Vyber súbor so záložkami" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "Vyber súbor so záložkami" #, fuzzy #~ msgid "Check this options to check external pages too" #~ msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #, fuzzy #~ msgid "Save links in..." #~ msgstr "Aktualizujem správu..." #~ msgid "Delete" #~ msgstr "Vymazať" #~ msgid "Save _project" #~ msgstr "Uložiť _projekt" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "gURLChecker Nastavenia" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "Vlastnosti stránky" #, fuzzy #~ msgid "" #~ "Check this option to check links that point on another host that the one " #~ "specified in the project URL" #~ msgstr "" #~ "Označte túto voľbu, ak nechcete kontrolovať odkazy, ktoré ukazujú na " #~ "iného ako špecifikovanéího hostiteľa v projektovom URL." #, fuzzy #~ msgid "" #~ "Check this option to check only one page and don't be interested on pages " #~ "content" #~ msgstr "" #~ "Označte túto voľbu, ak chcete kontrolovať iba jednu stránku a neaujíma " #~ "Vás obsah stránok." #, fuzzy #~ msgid "" #~ "Check this options to check pages under other repositories thant the one " #~ "specified for the project URL" #~ msgstr "" #~ "Označte túto voľbu, ak nechcete kontrolovať stránky v iných " #~ "umiestneniach, než aké je špecifikované projektovým URL." #, fuzzy #~ msgid "Check this option is you want to export links labels" #~ msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #, fuzzy #~ msgid "Check this option to numbered lines in the export" #~ msgstr "Označte túto voľbu, ak Vás nezaujíma obsah stránok záložiek" #, fuzzy #~ msgid "" #~ "The expiration date for this cookie was incorrect. It has been refused." #~ msgstr "" #~ "Dátum expirácie pre tento koláčik bol neplatný. Koláčik bol v gurlchecker " #~ "zamietnutý ." #, fuzzy #~ msgid "Actions" #~ msgstr "Umiestnenie:" #, fuzzy #~ msgid "Updates" #~ msgstr "Aktualizovať tento odkaz" #, fuzzy #~ msgid "link" #~ msgstr "Odkazy" #, fuzzy #~ msgid "Parent" #~ msgstr "Aktualizácia rodiča" #, fuzzy #~ msgid "Branch" #~ msgstr "Aktualizácia vetvy" #, fuzzy #~ msgid "All this link locations" #~ msgstr "Zobraziť všetky umiestnenia tohto odkazu" #, fuzzy #~ msgid "This page online" #~ msgstr "Zobraziť rodičovskú stránku online" #, fuzzy #~ msgid "Parent page online" #~ msgstr "Zobraziť rodičovskú stránku online" #, fuzzy #~ msgid "Page source" #~ msgstr "Zobraziť zdroj" #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "Vzdialený hostiteľ nám zakázal pridelenie stránky.\n" #~ "Niektoré web serveri neumožňujú HEAD metódu na konkrétne súbory... a " #~ "gURLChecker potrebuje poslať HEAD metódu :-(\n" #~ "\n" #~ "Skúste ho skontrolovať neskôr, alebo odfiltrujte túto doménu v " #~ "nastaveniach." #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "Niektoré web servery nepovoľujú HEAD metódu na konkrétne súbory... a " #~ "gURLChecker potrebuje poslať HEAD metódu :-(\n" #~ "\n" #~ "Skúste kontrolu neskôr, alebo odfiltrujte túto doménu v nastaveniach." #, fuzzy #~ msgid "gURLChecker project page" #~ msgstr "gurlchecker projektová stránka" #, fuzzy #~ msgid "Pages relations" #~ msgstr "Informácie o stránke" #~ msgid " " #~ msgstr " " #, fuzzy #~ msgid "Show warnings" #~ msgstr "Varovania" #~ msgid "FILE" #~ msgstr "FILE" #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "Prosím zadajte názov domény" #~ msgid "Please, enter a directory name." #~ msgstr "Prosím zadajte názov adresára" #~ msgid "The domain you entered seems not to be valid." #~ msgstr "Doména, ktorú ste zadali nie je pravdepodobne platná" #~ msgid "Please, select a project to delete." #~ msgstr "Prosím vyberte projekt na vymazanie" #~ msgid "Check email MX" #~ msgstr "Kontrolovať email MX" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Emails" #~ msgstr "Emaily" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "Kontrolovať email MX" #~ msgid "Authentication" #~ msgstr "Autorizácia" #~ msgid "Check" #~ msgstr "Kontrola" #~ msgid "Cookies" #~ msgstr "Koláčiky" #~ msgid "Debug" #~ msgstr "Ladenie" gurlchecker-0.13.1/po/ChangeLog0000644000175000017500000003420011407055553013207 000000000000002010-06-19 Emmanuel Saracco * fr: Updated french translation. 2010-06-18 Joe Dalton * da.po: Updated danish translation. 2010-03-28 Emmanuel Saracco * fr: Updated french translation. 2010-03-10 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2010-03-08 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2010-02-13 Angelo Theodorou * it: Updated italian translation. 2010-02-07 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2010-02-06 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2010-01-14 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2009-04-05 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2008-01-31 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2007-05-08 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2006-06-25 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2006-05-30 Angelo Theodorou * it: Updated italian translation. 2006-05-29 Angelo Theodorou * it: Updated italian translation. 2005-08-27 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2005-05-22 Stanislav Valasek * sk: Created slovak translation. 2004-12-28 Angelo Theodorou * it: Updated italian translation. 2004-11-09 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2004-11-06 Angelo Theodorou * it: Updated italian translation. 2004-11-03 Angelo Theodorou * it: Updated italian translation. 2004-11-01 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2004-10-30 Emmanuel Saracco * en: Updated english translation. * fr: Updated french translation. 2004-10-27 Alexander Hunziker * de.po: Updated german translation. 2004-10-25 Angelo Theodorou * it.po: Updated italian translation. 2004-10-10 Emmanuel Saracco * fr.po: Updated french translation. 2004-10-07 Emmanuel Saracco * fr.po: Updated french translation. 2004-09-30 Angelo Theodorou * it.po: Updated italian translation. 2004-09-29 Emmanuel Saracco * fr.po: Updated french translation. 2004-09-29 Stephane Loeuillet * replace src/libglade_gettext.c by ui/gurlchecker.glade * transcode all po files to UTF-8 * add src/getopt.c to POTFILES.in * update .pot and all .po with new translations and line numbers 2004-09-26 Emmanuel Saracco * fr.po: Updated french translation. 2004-07-01 Emmanuel Saracco * fr.po: Updated french translation. 2004-06-25 Gunner Poulsen * da.po: Updated danish translation. 2004-06-24 Angelo Theodorou * it.po: Updated italian translation. 2004-06-15 Emmanuel Saracco * fr.po: Updated french translation. 2004-06-07 Gunner Poulsen * da.po: Updated danish translation. 2004-05-31 Emmanuel Saracco * fr.po: Updated french translation. 2004-05-30 Emmanuel Saracco * fr.po: Updated french translation. 2004-05-28 Angelo Theodorou * it.po: Updated italian translation. 2004-05-24 Gunner Poulsen * da.po: Updated danish translation. 2004-05-23 Emmanuel Saracco * fr.po: Updated french translation. 2004-05-19 Emmanuel Saracco * fr.po: Updated french translation. 2004-05-15 Alexander Hunziker * de.po: Updated german translation. 2004-04-27 Angelo Theodorou * it.po: Updated italian translation. 2004-04-04 Gunner Poulsen * da.po: Updated danish translation. 2004-03-22 Emmanuel Saracco * fr.po: Updated french translation. 2004-03-15 Angelo Theodorou * it.po: Updated italian translation. 2004-03-14 Gunner Poulsen * da.po: Updated danish translation. 2004-03-13 Emmanuel Saracco * fr.po: Updated french translation. 2004-03-12 Emmanuel Saracco * fr.po: Updated french translation. 2004-03-11 Emmanuel Saracco * fr.po: Updated french translation. 2004-03-11 Angelo Theodorou * it.po: Updated italian translation. 2004-03-09 Daniel Pecos * es.po: Updated spanish translation. 2004-03-08 Angelo Theodorou * it.po: Created italian translation. 2004-03-07 Emmanuel Saracco * fr.po: Updated french translation. 2004-02-18 Gunner Poulsen * da.po: Updated danish translation. 2004-02-13 Emmanuel Saracco * fr.po: Updated french translation. 2004-01-11 Emmanuel Saracco * fr.po: Updated french translation. 2004-01-05 Gunner Poulsen * da.po: Updated danish translation. 2004-01-04 Emmanuel Saracco * fr.po: Updated french translation. 2004-01-03 Gunner Poulsen * da.po: Updated danish translation. 2004-01-01 Emmanuel Saracco * fr.po: Updated french translation. 2003-11-16 Florent Jugla * eo.po: Updated esperanto translation. 2003-11-16 Alexander Hunziker * de.po: Updated german translation. 2003-11-13 Daniel Pecos * es.po: Updated spanish translation. 2003-11-10 Emmanuel Saracco * fr.po: Updated french translation. 2003-11-09 Takeshi Aihana * ja.po: Updated japanese translation. 2003-10-17 Gunner Poulsen * da.po: Updated danish translation. 2003-10-16 Emmanuel Saracco * fr.po: Updated french translation. 2003-10-15 Gunner Poulsen * da.po: Updated danish translation. 2003-10-15 Emmanuel Saracco * fr.po: Updated french translation. 2003-10-14 Gunner Poulsen * da.po: Updated danish translation. 2003-10-12 Emmanuel Saracco * fr.po: Updated french translation. 2003-10-09 Emmanuel Saracco * fr.po: Updated french translation. 2003-10-04 Gunner Poulsen * da.po: Updated danish translation. 2003-10-01 Emmanuel Saracco * fr.po: Updated french translation. 2003-09-20 Gunner Poulsen * da.po: Updated danish translation. 2003-09-11 Emmanuel Saracco * fr.po: Updated french translation. 2003-09-11 Daniel Pecos * es.po: Updated spanish translation. 2003-09-08 Daniel Pecos * es.po: Updated spanish translation. 2003-09-06 Gunner Poulsen * da.po: Updated danish translation. 2003-09-06 Takeshi Aihana * ja.po: Created japanese translation. 2003-09-06 Emmanuel Saracco * fr.po: Updated french translation. 2003-08-14 Gunner Poulsen * da.po: Updated danish translation. 2003-08-13 Emmanuel Saracco * fr.po: Updated french translation. 2003-08-12 Gunner Poulsen * da.po: Updated danish translation. 2003-08-11 Emmanuel Saracco * fr.po: Updated french translation. 2003-08-10 Gunner Poulsen * da.po: Updated danish translation. 2003-04-09 Takeshi Aihana * ja.po: Created japanese translation. 2003-08-06 Daniel Pecos * es.po: Updated spanish translation. 2003-08-05 Emmanuel Saracco * fr.po: Updated french translation. 2003-08-05 Gunner Poulsen * da.po: Updated danish translation. 2003-08-04 Emmanuel Saracco * fr.po: Updated french translation. 2003-08-02 Gunner Poulsen * da.po: Updated danish translation. 2003-07-28 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-28 Gunner Poulsen * da.po: Updated danish translation. 2003-07-27 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-26 Gunner Poulsen * da.po: Updated danish translation. 2003-07-23 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-19 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-18 Gunner Poulsen * da.po: Updated danish translation. 2003-07-17 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-17 Gunner Poulsen * da.po: Updated danish translation. 2003-07-16 Gunner Poulsen * da.po: Updated danish translation. 2003-07-14 Emmanuel Saracco * fr.po: Updated french translation. 2003-07-08 Gunner Poulsen * da.po: Updated danish translation. 2003-07-07 Florent Jugla * eo.po: Updated esperanto translation. 2003-07-07 Gunner Poulsen * da.po: Created danish translation. 2003-07-03 Daniel Pecos * es.po: Updated spanish translation. 2003-06-24 Emmanuel Saracco * fr.po: Updated french translation. 2003-06-15 Emmanuel Saracco * fr.po: Updated french translation. 2003-06-14 Emmanuel Saracco * fr.po: Updated french translation. 2003-06-12 Emmanuel Saracco * fr.po: Updated french translation. 2003-06-11 Emmanuel Saracco * fr.po: Updated french translation. 2003-06-09 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-30 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-25 Takeshi Aihana * ja.po: Updated japanese translation. 2003-05-17 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-13 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-13 Daniel Pecos * es.po: Updated spanish translation. 2003-05-11 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-09 Emmanuel Saracco * fr.po: Updated french translation. 2003-05-05 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-05 Daniel Pecos * es.po: Updated spanish translation. 2003-05-05 Florent Jugla * eo.po: Created esperanto translation. 2003-04-30 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-28 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-24 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-21 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-21 Takeshi Aihana * ja.po: Updated japanese translation. 2003-04-17 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-08 Emmanuel Saracco * fr.po: Updated french translation. 2003-04-08 Daniel Pecos * es.po: Updated spanish translation. 2003-04-08 Takeshi Aihana * ja.po: Created japanese translation. 2002-11-01 Emmanuel Saracco * fr.po: Created french translation. gurlchecker-0.13.1/po/it.po0000644000175000017500000017624011407055352012421 00000000000000# translation of it.po to Italian # gURLChecker it.po # Copyright (C) 2002-2010 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # Angelo Theodorou , 2010. msgid "" msgstr "" "Project-Id-Version: 0.13.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2010-02-13 22:01+0200\n" "Last-Translator: Angelo Theodorou \n" "Language-Team: it \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "Il seguente cookie sarà cancellato" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "Il seguente cookie sarà aggiornato" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "Il seguente cookie sarà aggiunto" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "%u - Errore dopo: %s\n" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "%u - Errore sconosciuto...\n" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Tipo" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 msgid "Custom action" msgstr "Azione personalizzata" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Etichetta" #: ../src/application.c:318 msgid "Date" msgstr "Data" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Nome" #: ../src/application.c:529 msgid "Content" msgstr "Contenuto" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "Al termine di questa sessione" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "Immettere login e password per %s su %s" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "Risultato convalida W3C CSS (libcroco)" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "Questo è un foglio di stile valido." #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" "Si è verificato un problema con l'uso della libreria Croco.\n" "Si prega di verificare la configurazione o la versione di libcroco.\n" "\n" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "Risultato convalida W3C HTML (libtidy)" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" "Si è verificato un problema con l'uso della libreria Tidy.\n" "Si prega di verificare la configurazione o la versione di libtidy.\n" "\n" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "Trovata estensione scorretta.\n" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "Virus Trovato:" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "Nessun referente" #: ../src/application.c:1536 msgid "Missing URL" msgstr "URL mancante" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "Non specificato" #: ../src/application.c:1577 msgid "Unknown" msgstr "Sconosciuto" #: ../src/application.c:1582 msgid "(gURLChecker internals)" msgstr "(Interno a gURLChecker)" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "Cache Disco" #: ../src/application.c:1592 msgid "Not cached" msgstr "Non in cache" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 msgid "E-Mail" msgstr "E-Mail" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 msgid "Please, select a item." msgstr "Selezionare un elemento." #: ../src/application.c:1906 msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "" "Impossibile far partire il browser\n" "Si è verificato il seguente errore:\n" #: ../src/application.c:1956 ../src/application.c:1988 msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "Il file corrispondente è vuoto o non esiste nella directory della cache!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Visualizza il sorgente" #: ../src/application.c:2029 msgid "Redirect" msgstr "Redirigi" #: ../src/application.c:2030 msgid "Edit" msgstr "Modifica" #: ../src/application.c:2031 msgid "Create target" msgstr "Crea target" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Host irraggiungibile" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "L'host remoto non risponde...\n" "Forse è il caso di cambiare il timeout nelle preferenze di gURLChecker; o " "forse è davvero non disponibile.\n" "\n" "Riprovare più tardi." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "Protocollo FILE://" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Protocollo del file trovato.\n" "Il programma è stato impostato per avvisare le occorrenze del protocollo " "\"FILE://\" in un collegamento." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Pagina disponibile" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Nessun problema con questa pagina.\n" "Il server è raggiungibile ed il documento può essere caricato senza alcun " "problema." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Pagina non trovata" #: ../src/application.c:2123 ../src/application.c:2240 msgid "The page does not exist on the server." msgstr "La pagina non esiste sul server." #: ../src/application.c:2129 msgid "Bad E-Mail link" msgstr "Collegamento E-Mail errato" #: ../src/application.c:2130 msgid "The E-Mail specified in the link is not well formatted." msgstr "" "L'indirizzo E-Mail specificato nel collegamento non è formattato " "correttamente." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problema con MX" #: ../src/application.c:2137 msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "L'MX del dominio specificato per questo indirizzo E-Mail non è valido, " "oppure il dominio stesso non è valido." #: ../src/application.c:2144 msgid "E-Mail link ok" msgstr "Collegamento E-Mail valido" #: ../src/application.c:2144 msgid "No problem with this E-Mail." msgstr "Nessun problema con questo indirizzo E-Mail." #: ../src/application.c:2150 msgid "Item ignored" msgstr "Elemento ignorato" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "" "È stato scelto di ignorare questo elemento mentre gURLChecker lo controllava." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Collegamento errato" #: ../src/application.c:2159 msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "Il collegamento HTML è errato.\n" "Forse manca il valore HREF?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Nessuna informazione valida" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker non può interpretare il codice di stato inviato dall'host " "remoto.\n" "Riportare il valore del campo \"Stato\" all'autore di gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "Pagina spostata permanentemente" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "Nessun problema reale con questa pagina.\n" "Alla risorsa richiesta è stato semplicemente assegnato un nuovo URI " "permanente." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "Pagina spostata temporaneamente" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "La risposta alla richiesta può essere trovata sotto un URI differente" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Accesso ristretto" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Questa pagina necessita di autenticazione per essere visualizzata." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Accesso negato" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" "L'host remoto si è rifiutato di servire la pagina.\n" "Dal modo in cui gURLChecker processa i collegamenti, questo errore non " "doveva verificarsi.\n" "\n" "Si prega di riportare questo bug al team di gURLChecker." #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "La pagina è disponibile, ma è senza contenuti" #: ../src/application.c:2225 msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Nessun problema con questa pagina, ma non ha alcun contenuto...\n" "\n" "Riprovare più tardi." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "URL errata" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "La richiesta non può essere interpretata dal server a causa di una sintassi " "errata." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Metodo non permesso" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "L'host remoto ha rifiutato di servire la pagina.\n" "\n" "Riprovare più tardi." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Errore interno del server" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "La pagina contiene codice errato, oppure il server è mal configurato.\n" "\n" "Riprovare più tardi." #: ../src/application.c:2262 msgid "Method not supported" msgstr "Metodo non supportato" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "Gateway errato" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "Il server, mentre funzionava da gateway o proxy, ha ricevuto un responso non " "valido dal server di upstream al quale stava accedendo, nel tentativo di " "completare la richiesta.\n" "\n" "Ricontrollare questa pagina più tardi." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Servizio non disponibile" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "Il server al momento non può gestire la richiesta a causa di un sovraccarico " "temporaneo o di una manutenzione. È anche possibile che si stia usando un " "proxy che non può connettersi al dato host.\n" "\n" "Riprovare più tardi, o cambiare le impostazioni del proxy." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Richiesta non completata" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "Il server, mentre funzionava da gateway o proxy, non ha ricevuto un responso " "in tempo dal server di upstream specificato dall'URI (es. HTTP, FTP, LDAP) " "oppure da qualche altro server ausiliario (es. DNS) al quale aveva bisogno " "di accedere nel tentativo di completare la richiesta." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "Accesso negato o troppe connessioni" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" "Questo server non accetta utenti anonimi, o il massimo numero consentito di " "client è già connesso.\n" "\n" "Riprovare più tardi." #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Ricevuto un timeout nel richiedere la pagina" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Forse è il caso di cambiare il timeout nelle preferenze di gURLChecker. " "Forse l'host remoto è troppo impegnato al momento per rispondere alla " "richiesta o forse esso non esiste affatto.\n" "\n" "Riprovare più tardi." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "" "Non è possibile far partire una nuova istanza di gURLChecker; si è " "verificato il seguente errore:" #: ../src/application.c:2698 #, fuzzy, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" "Si è verificato un problema con l'inizializzazione della libreria Clamav.\n" "Si prega di verificare la configurazione o la versione di libclamav.\n" "\n" "I virus non saranno riconosciuti." #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" "Si è verificato un problema con l'inizializzazione della libreria Croco.\n" "Si prega di verificare la configurazione o la versione di libcroco.\n" "\n" "I fogli di stile CSS non saranno convalidati." #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" "Si è verificato un problema con l'inizializzazione della libreria Tidy.\n" "Si prega di verificare la configurazione o la versione di libtidy.\n" "\n" "Le pagine HTML non saranno convalidate." #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Controllo in corso..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" "Emmanuel Saracco\n" "\n" "Contributori:\n" "Stephane Loeuillet" #: ../src/application.c:3074 msgid "Manpage:" msgstr "Pagina di manuale:" #: ../src/application.c:3078 msgid "Code:" msgstr "Codice:" #: ../src/application.c:3083 msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana, Giapponese\n" "Alexander Hunziker, Tedesco\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spagnolo\n" "Gunner Poulsen, Danese\n" "Emmanuel Saracco, Francese\n" "Angelo Theodorou, Italiano\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker è un programma per il controllo dei collegamenti sul web, munito " "di interfaccia grafica.\n" "Può lavorare su un intero sito, su una singola pagina locale o su un file di " "segnalibri di un browser" #: ../src/application.c:3327 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "" "È possibile selezionare un file dei segnalibri locale o remoto.\n" "Deve essere nel formato XBEL, Opera, Google Chrome o un database di Firefox" #: ../src/application.c:3332 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "" "È possibile selezionare un file dei segnalibri locale o remoto.\n" "Deve essere nel formato XBEL, Opera o un database di Firefox" #: ../src/application.c:3337 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "" "È possibile selezionare un file dei segnalibri locale o remoto.\n" "Deve essere nel formato XBEL, Opera o Google Chrome" #: ../src/application.c:3342 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "" "È possibile selezionare un file dei segnalibri locale o remoto.\n" "Deve essere nel formato XBEL o Opera" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nuovo dominio da scartare" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Aggiungere un dominio da scartare" #: ../src/application.c:3372 msgid "This domain name is not valid." msgstr "Il nome di dominio non è valido." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Nuova directory da scartare" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Aggiungere una directory da scartare" #: ../src/application.c:3543 msgid "Please, enter a string to search." msgstr "Immettere una stringa da cercare." #: ../src/application.c:3566 msgid "Please, check that there is no mismatch in your URL and try again." msgstr "Verificare che l'URL immesso sia corretto quindi riprovare." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "Spiacente, ma questa versione di gurlchecker non ha il supporto SSL" #: ../src/application.c:3672 ../src/project.c:441 msgid "[Local file] Page information" msgstr "[File locale] Informazioni sulla pagina" #: ../src/application.c:3675 ../src/project.c:444 msgid "[Web site] Page information" msgstr "[Sito web] Informazioni sulla pagina" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Scegliere un file di segnalibri da controllare." #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" "Si è verificato un problema nel reperire il file remoto dei segnalibri.\n" "Si provi ad aumentare il ritardo di timeout." #: ../src/application.c:3799 msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "Il file immesso non è corretto oppure non si dispone dei diritti appopriati " "su di esso.\n" "Scegliere un file di segnalibri valido." #: ../src/application.c:3815 msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Il formato del file non è corretto.\n" "gurlcheker gestisce solamente i formati XBEL, Opera, " "Google Chrome e database di Firefox." #: ../src/application.c:3822 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Il formato del file non è corretto.\n" "Questa versione di gurlchecker gestisce solamente i formati XBEL, " "Opera e database di Firefox." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Il formato del file non è corretto.\n" "Questa versione di gurlchecker gestisce solamente i formati XBEL, " "Opera e Google Chrome." #: ../src/application.c:3835 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Il formato del file non è corretto.\n" "Questa versione di gurlchecker gestisce solamente i formati XBEL e " "Opera." #: ../src/application.c:3852 msgid "[Remote bookmarks] Page information" msgstr "[Segnalibri remoti] Informazioni sulla pagina" #: ../src/application.c:3855 msgid "[Local bookmarks] Page information" msgstr "[Segnalibri locali] Informazioni sulla pagina" #: ../src/application.c:4071 ../src/check.c:1556 msgid "Cleaning..." msgstr "Completamento..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" "Tutti i segnalibri che si riferiscono a pagine non trovate saranno rimossi.\n" "Si intende continuare?" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" "Il collegamento selezionato sarà rimosso.\n" "Si intende continuare?" #: ../src/callbacks.c:900 ../src/callbacks.c:918 msgid "Please, select a project." msgstr "Selezionare un progetto." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "Si desidera davvero cancellare questo progetto?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Collegamento Ipertestuale" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Collegamento Ipertestuale Locale" #: ../src/check.c:404 msgid "Local Image" msgstr "Immagine Locale" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Immagine" #: ../src/check.c:410 msgid "Frame link" msgstr "Collegamento ad un frame" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "Collegamento ad un foglio di stile" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Tipo Sconosciuto" #: ../src/check.c:867 msgid "Retrieving source..." msgstr "Recupero del sorgente..." #: ../src/check.c:998 msgid "Continue" msgstr "Continua" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Sospendi" #: ../src/check.c:1045 msgid "Checking file (FTP)..." msgstr "Controllo del file (FTP)..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Recupero dell'header..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Elemento già controllato..." #: ../src/check.c:1316 #, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "" "L'host MX %s per il dominio specificato è connesso ed ascolta sulla porta 25." #: ../src/check.c:1322 msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "L'host MX non risponde o il dominio di questa E-Mail non è valido." #: ../src/check.c:1328 msgid "The E-Mail's domain is not valid." msgstr "Il dominio di questa E-Mail non è valido." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "SICUREZZA: Controllo virus..." #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "W3C: Convalida foglio di stile CSS..." #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "W3C: Convalida pagina HTML..." #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "SICUREZZA: Controllo delle estensioni scorrette [%s]..." #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Inattivo %u secondi..." #: ../src/check.c:2119 msgid "Checking E-Mail..." msgstr "Controllo dell'E-Mail..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Controllo del file locale..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 msgid "Updating report..." msgstr "Aggiornamento del rapporto..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Ricerca..." #: ../src/web_site.c:267 msgid "Updating link..." msgstr "Aggiornamento del collegamento..." #: ../src/web_site.c:683 msgid "Updating branch..." msgstr "Aggiornamento del ramo..." #: ../src/web_site.c:733 msgid "Updating all project..." msgstr "Aggiornamento di tutto il progetto..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Controllo di %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "PAGINA PRINCIPALE" #: ../src/web_site.c:848 msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "L'accesso all'URL del progetto specificato è ristretto.\n" "Il controllo è stato annullato" #: ../src/web_site.c:908 msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "L'URL del progetto specificato non risponde.\n" "Il controllo è stato annullato." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "I segnalibri remoti devono essere salvati su questa macchina?" #: ../src/bookmarks.c:311 msgid "Save bookmarks file" msgstr "Salva file dei segnalibri" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "Nome del file in input" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Il nome del file non è in un formato corretto.\n" "Nulla è stato fatto." #: ../src/bookmarks.c:344 msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Le modifiche ai segnalibri verranno salvate.\n" "Il vecchio file dei segnalibri sarà rinominato con l'estensione \".uc\".\n" "Si desidera salvare?" #: ../src/bookmarks.c:379 msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Si è verificato un errore.\n" "Nulla è stato fatto." #: ../src/bookmarks.c:391 msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Le modifiche ai segnalibri verranno salvate.\n" "Si raccomanda di fare un backup manuale del database di Firefox prima di " "applicare le modifiche!.\n" "Si desidera salvare?" #: ../src/bookmarks.c:1058 msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Il dato file XML non è ben formato o la sua codifica non può essere " "trovata...\n" "Se si sta controllando un file di segnalibri remoto, si provi ad " "aumentare il ritardo di timeout.\n" "Il controllo è stato annullato." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Il dato file XML è vuoto.\n" #: ../src/main.c:126 msgid "Wrote by Emmanuel Saracco ." msgstr "" "Scritto da Emmanuel Saracco ." #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Questo è software libero; si leggano i sorgenti per le condizioni di copia. " "NON c'è garanzia; neanche per la COMMERCIALIZZAZIONE o per l'UTILIZZO PER " "SCOPI PARTICOLARI." #: ../src/main.c:136 #, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Utilizzo: %s [OPZIONE] [URL]\n" "Un controllore grafico di collegamenti web.\n" "\n" " -h, --help mostra questi aiuti\n" " -V, --version mostra la versione di %s\n" " -u, --http-user utente per l'autenticazione di base\n" " -p, --http-passwd password per l'autenticazione di base\n" " -A, --no-urls-args ignora gli argomenti degli URL\n" "\n" "Riporta i bug a \n" #: ../src/report.c:244 msgid "Cannot execute xsltproc; the following error occured:" msgstr "Impossibile eseguire xsltproc; si è verificato il seguente errore:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Collegamenti controllati: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Collegamenti controllati: %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Collegamenti corretti" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Collegamenti non funzionanti" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Collegamenti errati" #: ../src/report.c:499 msgid "Ignored links" msgstr "Collegamenti ignorati" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Timeout" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Tempo trascorso: %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "%lu byte" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "%.2f KB (%lu byte)" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "%.2f MB (%lu byte)" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Analisi del codice HTML..." #: ../src/html_parser.c:129 msgid "Parsing CSS code..." msgstr "Analisi del codice CSS..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u elementi trovati" #: ../src/search.c:528 msgid "Search ended" msgstr "Ricerca conclusa" #. status bar message #: ../src/project.c:361 #, c-format msgid "Loading [%s] project..." msgstr "Caricamento del progetto [%s]..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Creato il %s\n" "Aggiornato il %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Immettere un titolo per il progetto corrente." #: ../src/project.c:1391 msgid "Save the current project ?" msgstr "Salvare il progetto corrente ?" #: ../src/project.c:1400 msgid "Saving project..." msgstr "Salvataggio del progetto..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Stato: %s\n" "Locazione: %s\n" "Locazione del padre: %s\n" "Ultima modifica: %s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "Controllore grafico di collegamenti web" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gurlchecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opzione `%s' è ambigua\n" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opzione `--%s' non permette la specifica di un argomento\n" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opzione `%c%s' non permette la specifica di un argomento\n" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opzione `%s' richiede un argomento\n" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opzione `--%s' non riconosciuta \n" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opzione `%c%s' non riconosciuta\n" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opzione illegale -- %c\n" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opzione non valida -- %c\n" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opzione `-W %s' è ambigua\n" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'opzione `-W %s' non permette la specifica di un argomento\n" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr " " #: ../ui/gurlchecker.glade.h:4 msgid "CSS Extensions to check" msgstr "Estensioni CSS da controllare" #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Gestione del contenuto" #: ../ui/gurlchecker.glade.h:6 msgid "Documents to ignore" msgstr "Documenti da ignorare" #: ../ui/gurlchecker.glade.h:7 msgid "Expires :" msgstr "Scadenza :" #: ../ui/gurlchecker.glade.h:8 msgid "Extensions to search for" msgstr "Estensioni da cercare" #: ../ui/gurlchecker.glade.h:9 msgid "Files to check" msgstr "File da controllare" #: ../ui/gurlchecker.glade.h:10 msgid "HTML extensions to check" msgstr "Estensioni HTML da controllare" #: ../ui/gurlchecker.glade.h:11 msgid "Images to ignore" msgstr "Immagini da ignorare" #: ../ui/gurlchecker.glade.h:12 msgid "Location :" msgstr "Locazione :" #: ../ui/gurlchecker.glade.h:13 msgid "Location:" msgstr "Locazione:" #: ../ui/gurlchecker.glade.h:14 msgid "Meta Tags" msgstr "Meta Tags" #: ../ui/gurlchecker.glade.h:15 msgid "Modified :" msgstr "Modificato :" #: ../ui/gurlchecker.glade.h:16 msgid "Name :" msgstr "Nome :" #: ../ui/gurlchecker.glade.h:17 msgid "Options" msgstr "Opzioni" #: ../ui/gurlchecker.glade.h:18 msgid "Page:" msgstr "Pagina:" #: ../ui/gurlchecker.glade.h:19 msgid "Path :" msgstr "Percorso :" #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Proprietà" #: ../ui/gurlchecker.glade.h:21 msgid "Referrer :" msgstr "Referente :" #: ../ui/gurlchecker.glade.h:22 msgid "Security:" msgstr "Sicurezza:" #: ../ui/gurlchecker.glade.h:23 msgid "Server type :" msgstr "Tipo di server :" #: ../ui/gurlchecker.glade.h:24 msgid "Server:" msgstr "Server:" #: ../ui/gurlchecker.glade.h:25 msgid "Size :" msgstr "Dimensione :" #: ../ui/gurlchecker.glade.h:26 msgid "Source :" msgstr "Sorgente :" #: ../ui/gurlchecker.glade.h:27 msgid "Status :" msgstr "Stato :" #: ../ui/gurlchecker.glade.h:28 msgid "Type :" msgstr "Tipo :" #: ../ui/gurlchecker.glade.h:29 msgid "Value :" msgstr "Valore :" #: ../ui/gurlchecker.glade.h:30 msgid "Warnings" msgstr "Avvertimenti" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" "È possibile modificare le proprietà del cookie prima di accettarlo:" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "Accetta" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "Accetta tutti i cookie" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "Attiva" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "Attiva convalida W3C" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "Attiva controlli di sicurezza" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "Opzioni avanzate" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "Dopo quella volta, un tentativo mancato di connessione sarà terminato" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Tutti i collegamenti" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "Autenticazione" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" "Estensioni da controllare per i file errati, separate da una virgola.\n" "Es: bak,bad,sav,~,ok,-,old,orig,false,::$data" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "Estensione scorretta sul server" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "Blocca un host in timeout dopo" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "File dei segnalibri" #: ../ui/gurlchecker.glade.h:47 msgid "Branch update" msgstr "Aggiorna ramo" #: ../ui/gurlchecker.glade.h:48 msgid "By protocol" msgstr "Per protocollo" #: ../ui/gurlchecker.glade.h:49 msgid "By status" msgstr "Per stato" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "Per tipo" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" "Estensioni da controllare per file CSS, separate da una virgola.\n" "Es.: css" #: ../ui/gurlchecker.glade.h:53 msgid "CSV export" msgstr "Esportazione CSV" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Annulla" #: ../ui/gurlchecker.glade.h:55 msgid "Cancel check" msgstr "Annulla controllo" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Case sensitive" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Controllo" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Controlla MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Rapporto sul controllo" #: ../ui/gurlchecker.glade.h:61 msgid "Check this option for links numbering" msgstr "Attivare questa opzione per la numerazione dei collegamenti" #: ../ui/gurlchecker.glade.h:62 msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" "Attivare questa opzione se non si è interessati al contenuto delle pagine " "dei segnalibri" #: ../ui/gurlchecker.glade.h:63 msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Attivare questa opzione se si vuole limitare il controllo solo alla " "directory selezionata ed alle sue sottodirectory" #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" "Attivare questa opzione per evitare possibili cicli infiniti (quando alcuni " "argomenti sono generati casualmente, ad esempio)" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" "Attivare questa opzione per evitare alcuni fastidiosi cicli infiniti (quando " "alcuni argomenti sono generati casualmente, ad esempio)" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" "Attivare questa opzione per gestire l'Autenticazione di Base quando una " "pagina lo richiede" #: ../ui/gurlchecker.glade.h:67 msgid "Check this option to check FTP links" msgstr "Attivare questa opzione per controllare i collegamenti FTP" #: ../ui/gurlchecker.glade.h:68 msgid "Check this option to check MX of e-mails domains" msgstr "Attivare questa opzione per controllare l'MX dei domini di e-mail" #: ../ui/gurlchecker.glade.h:69 msgid "Check this option to check for e-mails syntax" msgstr "Attivare questa opzione per controllare la sintassi delle e-mail" #: ../ui/gurlchecker.glade.h:70 msgid "Check this option to check secure URLs too" msgstr "Attivare questa opzione per controllare anche gli URL sicuri" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "Attivare questa opzione per abilitare la convalida CSS" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "Attivare questa opzione per abilitare la convalida HTML" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "Attivare questa opzione per abilitare la convalida W3C" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" "Attivare questa opzione per abilitare il rilevamento di estensioni non comuni" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "Attivare questa opzione per abilitare i controlli di sicurezza" #: ../ui/gurlchecker.glade.h:76 msgid "Check this option to enable virus scan of pages content" msgstr "" "Attivare questa opzione per abilitare il controllo dei virus sul contenuto " "delle pagine" #: ../ui/gurlchecker.glade.h:77 msgid "Check this option to export links label" msgstr "Attivare questa opzione per esportare l'etichetta dei collegamenti" #: ../ui/gurlchecker.glade.h:78 msgid "Check this option to export links labels" msgstr "Attivare questa opzione per esportare le etichette dei collegamenti" #: ../ui/gurlchecker.glade.h:79 #, fuzzy msgid "Check this option to export only external links" msgstr "" "Attivare questa opzione se si vuole esportare le etichette dei collegamenti." #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" "Attivare questa opzione per ignorare i server che non rispondono dopo più di " "n tentativi" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" "Attivare questa opzione per recuperare il contenuto dei documenti che non " "siano pagine HTML ed immagini: PDF, tarball..." #: ../ui/gurlchecker.glade.h:82 msgid "Check this option to retreive images content for local preview" msgstr "" "Attivare questa opzione per recuperare il contenuto delle immagini per " "un'anteprima locale" #: ../ui/gurlchecker.glade.h:83 msgid "Check this option to scan only one page" msgstr "Attivare questa opzione per controllare una sola pagina" #: ../ui/gurlchecker.glade.h:84 msgid "Choose a location" msgstr "Scegliere una locazione" #: ../ui/gurlchecker.glade.h:85 msgid "Clear export history" msgstr "Cancella la cronologia delle esportazioni" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Cancella la cronologia del progetto" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Cancella la cronologia delle ricerche" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Comprimi tutta la lista" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Considera come errore" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "Considera che il codice non è conforme al W3C se contiene:" #: ../ui/gurlchecker.glade.h:91 msgid "Cookie" msgstr "Cookie" #: ../ui/gurlchecker.glade.h:92 msgid "Cookies" msgstr "Cookie" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "Modalità di DEBUG" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "Debug" #: ../ui/gurlchecker.glade.h:95 msgid "Delete project" msgstr "Cancella progetto" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Descrizione:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Directory" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Mostra suggerimenti" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "Non accettare alcun cookie" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "Non mostrare più questa finestra di dialogo" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "Non recuperare il contenuto della pagina (velocizza il controllo)" #: ../ui/gurlchecker.glade.h:102 msgid "Document" msgstr "Documento" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" "Estensioni dei documenti da ignorare, separate da una virgola.\n" "Es.: asp,aspx,exe,pif" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Documenti" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domini" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Scartare le proprietà del collegamento durante il controllo" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Valori dinamici" #: ../ui/gurlchecker.glade.h:110 msgid "E-Mails" msgstr "E-Mail" #: ../ui/gurlchecker.glade.h:111 msgid "E-Mails syntax" msgstr "Sintassi dell'E-Mail" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Immettere l'URL da controllare" #: ../ui/gurlchecker.glade.h:113 msgid "Enter a local file path or URL to check" msgstr "Immettere il percorso di un file locale o di un'URL da controllare" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "Errori" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "Escludi immagini" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Espandi tutta la lista" #: ../ui/gurlchecker.glade.h:117 msgid "Export" msgstr "Esportazione" #: ../ui/gurlchecker.glade.h:118 msgid "Files" msgstr "File" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtri" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" "Prime parti del tipo mime dei file da controllare per i virus, separate da " "una virgola.\n" "Es.: application,audio,image,text,video,x-world" #: ../ui/gurlchecker.glade.h:122 msgid "Frame" msgstr "Frame" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Generale" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" "Estensioni HTML da controllare, separate da una virgola.\n" "Es.: php,html,htm,pl" #: ../ui/gurlchecker.glade.h:127 msgid "History" msgstr "Cronologia" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "Indirizzo email" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "Ignora gli argomenti degli URL" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignora questo elemento" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" "Estensioni delle immagini da ignorare, separate da una virgola.\n" "Es.: gif,png" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Anteprima dell'immagine" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Immagini" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "Esporta etichette" #: ../ui/gurlchecker.glade.h:137 msgid "Link update" msgstr "Aggiorna collegamento" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Collegamenti" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Nome dei collegamenti" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "File locale" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Locazione:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "Login:" #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "Contenuto dei META tag" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Profondità massima di livelli da controllare:" #: ../ui/gurlchecker.glade.h:146 msgid "Network" msgstr "Rete" #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Nuovo" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nuovo progetto di segnalibri" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nuova istanza" #: ../ui/gurlchecker.glade.h:150 msgid "New local file project" msgstr "Nuovo progetto su file locale" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nuovo progetto" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nuovo progetto web" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "Numerazione" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Controllare solo i collegamenti locali" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Controllare solo questa directory e le sue sottodirectory" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "Controllare solo i collegamenti locali" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Apri" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Apri un progetto" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Apri progetto" #: ../ui/gurlchecker.glade.h:160 msgid "Page content" msgstr "Contenuto della pagina" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Informazioni sulla pagina" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Proprietà della pagina" #: ../ui/gurlchecker.glade.h:163 msgid "Parent update" msgstr "Aggiorna padre" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "Password : " #: ../ui/gurlchecker.glade.h:165 msgid "Personal data" msgstr "Dati personali" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Proprietà del progetto" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "Richiesta di autenticazione" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protocolli" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "Rifiuta" #: ../ui/gurlchecker.glade.h:170 msgid "Remove all 404 links" msgstr "Rimuovi tutti i collegamenti 404" #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "Esporta rapporto" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Recupero del contenuto di file non di tipo HTML" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Recupero del contenuto delle immagini" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Salva" #: ../ui/gurlchecker.glade.h:175 msgid "Save bookmarks" msgstr "Salva segnalibri" #: ../ui/gurlchecker.glade.h:176 msgid "Save report in..." msgstr "Salva rapporto in..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Ricerca in corso..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Ricerca..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "Sicurezza" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "Avvisi di sicurezza" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Locazioni simili del collegamento" #: ../ui/gurlchecker.glade.h:182 msgid "Status code" msgstr "Codice di stato" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "Foglio di stile" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "Questa opzione sarà valida solamente per i progetti Sito web." #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "Queste scelte scavalcheranno [Filtri/Documenti]." #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Tempo di attesa tra due controlli, \n" "in secondi:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Timeout in secondi:" #: ../ui/gurlchecker.glade.h:190 msgid "Timeout:" msgstr "Timeout:" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Titolo:" #: ../ui/gurlchecker.glade.h:193 msgid "Uncheck this option to check external links too" msgstr "" "Disattivare questa opzione per controllare anche i collegamenti esterni" #: ../ui/gurlchecker.glade.h:194 msgid "Uncheck this option to check external pages too" msgstr "Disattivare questa opzione per controllare anche le pagine esterne" #: ../ui/gurlchecker.glade.h:195 #, fuzzy msgid "Update all children for this link" msgstr "Aggiorna tutti i figli per questo collegamento" #: ../ui/gurlchecker.glade.h:196 msgid "Update all links..." msgstr "Aggiornamento di tutti i colelgamenti..." #: ../ui/gurlchecker.glade.h:197 msgid "Update main page..." msgstr "Aggiornamento pagina principale..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "Aggiorna la pagina contenente questo collegamento" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "Aggiorna questo collegamento" #: ../ui/gurlchecker.glade.h:200 msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Aggiornamento dei contatori del rapporto\n" "\n" "Attendere prego..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "Usa modo passivo" #: ../ui/gurlchecker.glade.h:205 msgid "View all link locations" msgstr "Visualizza tutte le locazioni di questo collegamento" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "Visualizza estensioni scorrette" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Visualizza online" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Visualizza la pagina padre online" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "Virus" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "Avvisi W3C" #: ../ui/gurlchecker.glade.h:212 msgid "W3C validation" msgstr "Convalida W3C" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "Attendere" #: ../ui/gurlchecker.glade.h:214 msgid "Warnings" msgstr "Avvertimenti" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Sito web" #: ../ui/gurlchecker.glade.h:216 #, fuzzy msgid "When a cookie is added" msgstr "Quando viene aggiunto un cookie" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "Quando viene cancellato un cookie" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "Quando viene aggiornato un cookie" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "Sarà rimosso ogni segnalibro che punta ad una pagina non esistente" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Con SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Visualizza" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Modifica" #: ../ui/gurlchecker.glade.h:223 msgid "_File" msgstr "_File" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "_Aiuto" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Progetto" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "tentativi" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "Preferenze di gURLChecker" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "gURLChecker usa la libreria libclamav per cercare virus nei file" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" "gURLChecker usa la libreria libcroco per convalidare i fogli di stile CSS2" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "gURLChecker usa la libreria libtidy per convalidare le pagine HTML" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "secondi, tra i controlli." #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "secondi." #, fuzzy #~ msgid "" #~ "Emmanuel Saracco \n" #~ "\n" #~ "Contributors:\n" #~ "Stephane Loeuillet " #~ msgstr "" #~ "Emmanuel Saracco \n" #~ "\n" #~ "Contributi:Stephane Loeuillet \n" #~ "\n" #~ "Grafica:\n" #~ "Jan Henrik Helmers \n" #~ "Emmanuel Saracco " #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "File di segnalibri locale o remoto da controllare" #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker ha annullato il controllo perché non c'è spazio sufficiente " #~ "nella partizione della directory di lavoro.\n" #~ "gURLChecker ha fissato un margine di sicurezza per stimare lo spazio " #~ "libero." #, fuzzy #~ msgid "Flash option: check it to check only one page" #~ msgstr "" #~ "Attivare questa opzione se si vuole esportare le etichette dei " #~ "collegamenti." #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Controllare solamente questa directory e le sue sottodirectory" #~ msgid "" #~ "The URL you entered was not understoud. \n" #~ "For the moment gURLChecker only support a few protocols for bookmarks " #~ "checking." #~ msgstr "" #~ "L'URL inserita è risultata incomprensibile. \n" #~ "Al momento gURLChecker supporta solo pochi protocolli per il controllo " #~ "dei segnalibri." #~ msgid "Please, check URL syntax and try again." #~ msgstr "Verificare la sintassi dell'URL e riprovare." #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "HTTPS" #~ msgstr "HTTPS" #~ msgid "Choose a bookmarks file" #~ msgstr "Scegliere un file di segnalibri" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "Scegliere una locazione" #, fuzzy #~ msgid "Check this options to check external pages too" #~ msgstr "" #~ "Attivare questa opzione se si vuole esportare le etichette dei " #~ "collegamenti." #~ msgid "HTML" #~ msgstr "HTML" #, fuzzy #~ msgid "Save links in..." #~ msgstr "Salva rapporto in..." #~ msgid "Delete" #~ msgstr "Cancella" #~ msgid "Save _project" #~ msgstr "Salva _progetto" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "Preferenze di gURLChecker" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "Proprietà della pagina" #, fuzzy #~ msgid "" #~ "Check this option to check links that point on another host that the one " #~ "specified in the project URL" #~ msgstr "" #~ "Attivare questa opzione se non si vogliono controllare link che puntano " #~ "ad un host diverso da quello specificato nell'URL del progetto." #, fuzzy #~ msgid "" #~ "Check this option to check only one page and don't be interested on pages " #~ "content" #~ msgstr "" #~ "Attivare questa opzione se si vuole controllare una sola pagina e non si " #~ "è interessati ai contenuti." #, fuzzy #~ msgid "" #~ "Check this options to check pages under other repositories thant the one " #~ "specified for the project URL" #~ msgstr "" #~ "Attivare questa opzione se non si vuole controllare la pagina sotto " #~ "repositori diversi da quello specificato per l'URL del progetto." #, fuzzy #~ msgid "Check this option is you want to export links labels" #~ msgstr "" #~ "Attivare questa opzione se si vuole esportare le etichette dei " #~ "collegamenti." #, fuzzy #~ msgid "Check this option to numbered lines in the export" #~ msgstr "" #~ "Attivare questa opzione se si vuole la numerazione dei collegamenti." #~ msgid "Virii" #~ msgstr "Virus" #~ msgid "" #~ "The expiration date for this cookie was incorrect. It has been refused." #~ msgstr "" #~ "La data di scadenza per questo cookie non era corretta. È stato rifiutato." #~ msgid "Actions" #~ msgstr "Azioni" #~ msgid "Updates" #~ msgstr "Aggiornamenti" #~ msgid "link" #~ msgstr "collegamento" #~ msgid "Parent" #~ msgstr "Padre" #~ msgid "Branch" #~ msgstr "Ramo" #~ msgid "View" #~ msgstr "Vista" #~ msgid "All this link locations" #~ msgstr "Tutte le locazioni di questo link" #~ msgid "This page online" #~ msgstr "Questa pagina online" #~ msgid "Parent page online" #~ msgstr "Pagina padre online" #~ msgid "Page source" #~ msgstr "Sorgente della pagina" #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "L'host remoto ha rifiutato di servire la pagina.\n" #~ "Alcuni server web non permettono il metodo HEAD su particolari file... e " #~ "gURLChecker ha bisogno di inviare un metodo HEAD :-(\n" #~ "\n" #~ "Riprovare più tardi, oppure filtrare questo dominio nelle impostazioni." #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "Alcuni server web non permettono il metodo HEAD su particolari file... e " #~ "gURLChecker ha bisogno di inviare un metodo HEAD :-(\n" #~ "\n" #~ "Riprovare più tardi, oppure filtrare questo dominio nelle impostazioni." #~ msgid "gURLChecker project page" #~ msgstr "pagina di progetto di gURLChecker" #, fuzzy #~ msgid "Graphic view" #~ msgstr "Grafica:" #, fuzzy #~ msgid "Pages relations" #~ msgstr "Informazioni sulla pagina" #~ msgid " " #~ msgstr " " #, fuzzy #~ msgid "Show warnings" #~ msgstr "Avvertimenti" #~ msgid "FILE" #~ msgstr "FILE" #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "Immettere un nome di dominio." #~ msgid "Please, enter a directory name." #~ msgstr "Immettere il nome della directory." #~ msgid "The domain you entered seems not to be valid." #~ msgstr "Il dominio immesso sembra non essere valido." #~ msgid "Please, select a project to delete." #~ msgstr "Selezionare un progetto da cancellare." #~ msgid "Check email MX" #~ msgstr "Controllo dell'email MX" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Emails" #~ msgstr "Email" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "Controllo dell'email MX" #~ msgid "Authentication" #~ msgstr "Autenticazione" #~ msgid "Check" #~ msgstr "Controllo" #~ msgid "Cookies" #~ msgstr "Cookie" #~ msgid "Debug" #~ msgstr "Debug" #~ msgid "MAIN URL" #~ msgstr "URL PRINCIPALE" #~ msgid "*" #~ msgstr "*" gurlchecker-0.13.1/po/ja.po0000644000175000017500000016175711407055352012406 00000000000000# gurlchecker ja.po. # Copyright (C) 2002, 2003 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # # Takeshi AIHANA , 2003. # msgid "" msgstr "" "Project-Id-Version: 0.7.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2003-11-09 11:21+0900\n" "Last-Translator: Takeshi AIHANA \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "ID" #: ../src/application.c:118 msgid "Type" msgstr "種類" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 #, fuzzy msgid "Custom action" msgstr "ブックマーク・ファイルの選択" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "ラベル" #: ../src/application.c:318 #, fuzzy msgid "Date" msgstr "削除" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "名前" #: ../src/application.c:529 msgid "Content" msgstr "内容" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "" #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "" #: ../src/application.c:1536 msgid "Missing URL" msgstr "" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "" #: ../src/application.c:1577 msgid "Unknown" msgstr "" #: ../src/application.c:1582 #, fuzzy msgid "(gURLChecker internals)" msgstr "gURLChecker の設定" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "" #: ../src/application.c:1592 msgid "Not cached" msgstr "" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 #, fuzzy msgid "E-Mail" msgstr "E-メール" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 #, fuzzy msgid "Please, select a item." msgstr "まず最初にアイテムを選択して下さい。" #: ../src/application.c:1906 #, fuzzy msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "お使いのウェブ・ブラウザを起動できません。次のエラーが発生しました:" #: ../src/application.c:1956 ../src/application.c:1988 #, fuzzy msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "一致するファイルが空か、\n" "あるいはキャッシュ・フォルダに存在しません!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "ソースの表示" #: ../src/application.c:2029 msgid "Redirect" msgstr "" #: ../src/application.c:2030 #, fuzzy msgid "Edit" msgstr "編集(_E)" #: ../src/application.c:2031 msgid "Create target" msgstr "" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "ホストが見つかりません" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "リモート・ホストから全く応答がありません...\n" "おそらく gURLChecker の設定にあるタイムアウト値を変更したか、あるいは本当に" "サーバがダウンしているようです。\n" "\n" "あとでチェックしてみて下さい。" #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "FILE:// protocol" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "ファイル・プロトコルを検出しました。\n" "リンクの中に \"FILE://\" プロトコルを見つけたら警告するかどうかを問い合わせし" "ました。" #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "ページは利用可能です" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "このページには問題はありません。\n" "サーバは起動されており、ドキュメントを問題なく読み込むことが可能です。" #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "ページが見つかりませんでした" #: ../src/application.c:2123 ../src/application.c:2240 #, fuzzy msgid "The page does not exist on the server." msgstr "そのサーバにはもうページが存在しません。" #: ../src/application.c:2129 #, fuzzy msgid "Bad E-Mail link" msgstr "おかしな E-メールのリンク" #: ../src/application.c:2130 #, fuzzy msgid "The E-Mail specified in the link is not well formatted." msgstr "" "リンクの中で指定されている E-メールのアドレスが標準形式ではありません。" #: ../src/application.c:2136 msgid "Problem with MX" msgstr "MX を利用する際の問題" #: ../src/application.c:2137 #, fuzzy msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "この E-メール・アドレスに指定されているドメインの MX が正しくないか、あるいは" "ドメイン自身が正しくありません。" #: ../src/application.c:2144 #, fuzzy msgid "E-Mail link ok" msgstr "E-メールのリンクに問題ありません" #: ../src/application.c:2144 #, fuzzy msgid "No problem with this E-Mail." msgstr "この E-メール・アドレスには問題がありません。" #: ../src/application.c:2150 msgid "Item ignored" msgstr "アイテムは無視されました" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "" "gURLChecker がチェックしている間にこのアイテムを無視することを選択しました。" #: ../src/application.c:2158 msgid "Malformed link" msgstr "おかしなリンクです。" #: ../src/application.c:2159 #, fuzzy msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "HTML リンクが間違っています。\n" "\n" "SRC 属性が空か、あるいは存在しないか、関連リンクが正しくないかもしれません。" #: ../src/application.c:2165 msgid "No valid information" msgstr "適切な情報ではありません" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker はリモート・ホストから送信されたステータス・コードを理解できませ" "ん。\n" "ヘッダにある \"ステータス\" の値を gURLChecker の作者に報告して下さい。" #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "ページは恒久的に別の場所に移動しました" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "このページに対する実際のエラーではありません。\n" "要求したリソースには新しい URL が割り当てられています。" #: ../src/application.c:2191 #, fuzzy msgid "Page moved Temporarily" msgstr "ページは恒久的に別の場所に移動しました" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" #: ../src/application.c:2207 msgid "Restricted access" msgstr "アクセスが制限されています" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "このページを表示するには証明書が必要です。" #: ../src/application.c:2214 msgid "Access forbidden" msgstr "アクセスが禁止されています" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "ページは利用可能ですが、ドキュメントがありません" #: ../src/application.c:2225 #, fuzzy msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "このページには問題はありませんが、まったく内容がありません...\n" "\n" "あとでチェックしてみて下さい。" #: ../src/application.c:2232 msgid "Malformed URL" msgstr "おかしな URL です。" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "そのリクエストの文法が間違っているため、サーバで解釈することができませんでし" "た。" #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Method が許可されていません" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "リモート・ホストがこのページへのアクセスを拒否しました。\n" "\n" "あとでチェックしてみて下さい。" #: ../src/application.c:2254 msgid "Internal server error" msgstr "サーバ内部のエラーです" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "ページにおかしなコードが含まれているか、あるいはサーバの設定が間違っていま" "す。\n" "\n" "あとでチェックしてみて下さい。" #: ../src/application.c:2262 #, fuzzy msgid "Method not supported" msgstr "Method が許可されていません" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "" #: ../src/application.c:2273 #, fuzzy msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "ゲートウェイまたはプロキシとして動作するサーバが、URI (例: HTTP、FTP、LDAP)、" "またはリクエストを送信するためにアクセスが必要なその他の補助サーバ (例: DNS) " "で指定した上流サーバからの応答を一時的に受信しませんでした。" #: ../src/application.c:2282 msgid "Service unavailable" msgstr "サービスが利用不可です" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "現在サーバは、一時的に負荷が高いか、あるいはメンテナンス中のためリクエストを" "ハンドルできません。指定したホストに直接接続せずにプロキシを利用することも可" "能です。\n" "\n" "あとでチェックするか、プロキシの設定を変更してみて下さい。" #: ../src/application.c:2293 msgid "Request not completed" msgstr "リクエストが完了していません" #: ../src/application.c:2294 #, fuzzy msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "ゲートウェイまたはプロキシとして動作するサーバが、URI (例: HTTP、FTP、LDAP)、" "またはリクエストを送信するためにアクセスが必要なその他の補助サーバ (例: DNS) " "で指定した上流サーバからの応答を一時的に受信しませんでした。" #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "ページのリクエストがタイムアウトになりました" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "おそらく gURLChecker の設定にあるタイムアウト値を変更したか、リモート・ホスト" "が gURLChecker のリクエストに応答するのにとても時間がかかっているか、あるいは" "リモート・ホストが既に存在していないと思われます。\n" "\n" "あとでチェックしてみて下さい。" #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "" "gURLChecker の新しいインスタンスを起動できません。次のエラーが発生しました:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "チェックの状況..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" #: ../src/application.c:3074 msgid "Manpage:" msgstr "" #: ../src/application.c:3078 msgid "Code:" msgstr "" #: ../src/application.c:3083 #, fuzzy msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana , 日本語\n" "Alexander Hunziker , ドイツ語\n" "Florent Jugla , エスペラント語\n" "Daniel Pecos , スペイン語\n" "Gunner Poulsen , オランダ語\n" "Emmanuel Saracco , フランス語\n" "\n" #: ../src/application.c:3103 #, fuzzy msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker はウェブのリンクをチェックします。\n" "サイト全体、ローカルのページ、またはブラウザのブックマークファイルを利用する" "ことが可能です。" #: ../src/application.c:3327 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "チェックするブックマーク・ファイルを選択して下さい" #: ../src/application.c:3332 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "チェックするブックマーク・ファイルを選択して下さい" #: ../src/application.c:3337 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "チェックするブックマーク・ファイルを選択して下さい" #: ../src/application.c:3342 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "チェックするブックマーク・ファイルを選択して下さい" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "無視する新しいドメイン" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "無視するドメインを追加して下さい" #: ../src/application.c:3372 #, fuzzy msgid "This domain name is not valid." msgstr "この E-メールのドメインが不正です。" #: ../src/application.c:3441 msgid "New directory to reject" msgstr "無視する新しいディレクトリ" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "無視するディレクトリを追加して下さい" #: ../src/application.c:3543 #, fuzzy msgid "Please, enter a string to search." msgstr "検索する文字列を入力して下さい。" #: ../src/application.c:3566 #, fuzzy msgid "Please, check that there is no mismatch in your URL and try again." msgstr "指定した URL が正しいか確認して再度トライして下さい。" #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "" #: ../src/application.c:3672 ../src/project.c:441 #, fuzzy msgid "[Local file] Page information" msgstr "ページの情報" #: ../src/application.c:3675 ../src/project.c:444 #, fuzzy msgid "[Web site] Page information" msgstr "ページの情報" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "チェックするブックマーク・ファイルを選択して下さい。" #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" #: ../src/application.c:3799 #, fuzzy msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "指定したファイルが正しくないか、あるいはそのファイルに対する適切な権限があり" "ません。正しいブックマーク・ファイルを選択して下さい。" #: ../src/application.c:3815 #, fuzzy msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "指定したファイルの書式が正しくありません。\n" "このバージョンの gURLChecker は XBEL フォーマットのみ対応しています。" #: ../src/application.c:3822 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "指定したファイルの書式が正しくありません。\n" "このバージョンの gURLChecker は XBEL フォーマットのみ対応しています。" #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "指定したファイルの書式が正しくありません。\n" "このバージョンの gURLChecker は XBEL フォーマットのみ対応しています。" #: ../src/application.c:3835 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "指定したファイルの書式が正しくありません。\n" "このバージョンの gURLChecker は XBEL フォーマットのみ対応しています。" #: ../src/application.c:3852 #, fuzzy msgid "[Remote bookmarks] Page information" msgstr "ページの情報" #: ../src/application.c:3855 #, fuzzy msgid "[Local bookmarks] Page information" msgstr "ページの情報" #: ../src/application.c:4071 ../src/check.c:1556 #, fuzzy msgid "Cleaning..." msgstr "終了..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:900 ../src/callbacks.c:918 #, fuzzy msgid "Please, select a project." msgstr "まず最初にアイテムを選択して下さい。" #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "" #: ../src/check.c:404 #, fuzzy msgid "Local Image" msgstr "ローカル・ファイル" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 #, fuzzy msgid "Image" msgstr "画像" #: ../src/check.c:410 #, fuzzy msgid "Frame link" msgstr "おかしなリンクです。" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "" #: ../src/check.c:414 msgid "Unknown Type" msgstr "" #: ../src/check.c:867 #, fuzzy msgid "Retrieving source..." msgstr "ヘッダの取得中..." #: ../src/check.c:998 msgid "Continue" msgstr "続行" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "一時停止" #: ../src/check.c:1045 #, fuzzy msgid "Checking file (FTP)..." msgstr "ローカル・ファイルのチェック中..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "ヘッダの取得中..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "アイテムは既に確認済みです..." #: ../src/check.c:1316 #, fuzzy, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "" "指定したドメインに対する MX ホスト %s は存在しておりポート番号 25 で listen " "されています。" #: ../src/check.c:1322 #, fuzzy msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "" "MX ホストが応答しないか、あるいはこの E-メールのドメインが正しくありません。" #: ../src/check.c:1328 #, fuzzy msgid "The E-Mail's domain is not valid." msgstr "この E-メールのドメインが不正です。" #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "" #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "" #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "" #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "" #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "%u (秒間) スリープ中..." #: ../src/check.c:2119 #, fuzzy msgid "Checking E-Mail..." msgstr "E-メールのチェック中..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "ローカル・ファイルのチェック中..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 #, fuzzy msgid "Updating report..." msgstr "ヘッダの取得中..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "検索..." #: ../src/web_site.c:267 #, fuzzy msgid "Updating link..." msgstr "E-メールのチェック中..." #: ../src/web_site.c:683 #, fuzzy msgid "Updating branch..." msgstr "ヘッダの取得中..." #: ../src/web_site.c:733 #, fuzzy msgid "Updating all project..." msgstr "終了..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "%s のチェック中..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "" #: ../src/web_site.c:848 #, fuzzy msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "指定したプロジェクトの URL から応答がありません。\n" "チェックをキャンセルします。" #: ../src/web_site.c:908 #, fuzzy msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "指定したプロジェクトの URL から応答がありません。\n" "チェックをキャンセルします。" #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "" #: ../src/bookmarks.c:311 #, fuzzy msgid "Save bookmarks file" msgstr "ブックマークの保存" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "ブックマーク・ファイルを保存する際にエラーが発生しました。\n" "何も実行しません。" #: ../src/bookmarks.c:344 #, fuzzy msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "変更したブックマークを保存します。\n" "古いブックマーク・ファイルは拡張子 \".uc\" 付きに名前が変更されます。\n" "\n" "保存してもよろしいですか?" #: ../src/bookmarks.c:379 #, fuzzy msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "ブックマーク・ファイルを保存する際にエラーが発生しました。\n" "何も実行しません。" #: ../src/bookmarks.c:391 #, fuzzy msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "変更したブックマークを保存します。\n" "古いブックマーク・ファイルは拡張子 \".uc\" 付きに名前が変更されます。\n" "\n" "保存してもよろしいですか?" #: ../src/bookmarks.c:1058 #, fuzzy msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "指定した XML ファイルがウェルフォームドではないか、またはそのエンコーディング" "を見つけることができません..\n" "チェックを中断します。" #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "指定した XML ファイルは空です。\n" #: ../src/main.c:126 #, fuzzy msgid "Wrote by Emmanuel Saracco ." msgstr "作者: Emmanuel Saracco " #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "これはフリーソフトウェアです。コピーする条件はソースを参照して下さい。商用利" "用または特別な目的に対しては完全無保証です。" #: ../src/main.c:136 #, fuzzy, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "用法: %s [オプション] [URL]\n" "GNOME 2 向けのウェブのリンク・チェッカーです。\n" "\n" " -h, --help\tこのヘルプを表示する\n" " -V, --version\t%s のバージョンを表示する\n" "\n" "バグ報告は 迄お願いします\n" #: ../src/report.c:244 #, fuzzy msgid "Cannot execute xsltproc; the following error occured:" msgstr "お使いのウェブ・ブラウザを起動できません。次のエラーが発生しました:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "チェックしたリンクの総数: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "チェックしたリンクの総数: %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Good なリンク" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "おかしなリンク" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "おかしなリンク" #: ../src/report.c:499 msgid "Ignored links" msgstr "無視したリンク" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "タイムアウト" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "経過時間: %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "HTML コードの解析中..." #: ../src/html_parser.c:129 #, fuzzy msgid "Parsing CSS code..." msgstr "HTML コードの解析中..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u 個のアイテムが見つかりました" #: ../src/search.c:528 msgid "Search ended" msgstr "検索終了" #. status bar message #: ../src/project.c:361 #, fuzzy, c-format msgid "Loading [%s] project..." msgstr "終了..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" #: ../src/project.c:609 #, fuzzy msgid "Please, enter a title for the current project." msgstr "検索する文字列を入力して下さい。" #: ../src/project.c:1391 #, fuzzy msgid "Save the current project ?" msgstr "新しいプロジェクト" #: ../src/project.c:1400 #, fuzzy msgid "Saving project..." msgstr "終了..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "" #: ../gurlchecker.desktop.in.h:2 #, fuzzy msgid "gurlchecker" msgstr "gURLChecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr "" #: ../ui/gurlchecker.glade.h:4 #, fuzzy msgid "CSS Extensions to check" msgstr "検索する文字列を入力して下さい。" #: ../ui/gurlchecker.glade.h:5 #, fuzzy msgid "Content management" msgstr "コンテンツの管理" #: ../ui/gurlchecker.glade.h:6 #, fuzzy msgid "Documents to ignore" msgstr "無視するドキュメント" #: ../ui/gurlchecker.glade.h:7 #, fuzzy msgid "Expires :" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:8 #, fuzzy msgid "Extensions to search for" msgstr "検索する文字列を入力して下さい。" #: ../ui/gurlchecker.glade.h:9 #, fuzzy msgid "Files to check" msgstr "無視するドキュメント" #: ../ui/gurlchecker.glade.h:10 #, fuzzy msgid "HTML extensions to check" msgstr "検索する文字列を入力して下さい。" #: ../ui/gurlchecker.glade.h:11 #, fuzzy msgid "Images to ignore" msgstr "無視する画像" #: ../ui/gurlchecker.glade.h:12 #, fuzzy msgid "Location :" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:13 #, fuzzy msgid "Location:" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:14 #, fuzzy msgid "Meta Tags" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:15 #, fuzzy msgid "Modified :" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:16 #, fuzzy msgid "Name :" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:17 #, fuzzy msgid "Options" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:18 #, fuzzy msgid "Page:" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:19 #, fuzzy msgid "Path :" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:20 #, fuzzy msgid "Properties" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:21 #, fuzzy msgid "Referrer :" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:22 #, fuzzy msgid "Security:" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:23 #, fuzzy msgid "Server type :" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:24 #, fuzzy msgid "Server:" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:25 #, fuzzy msgid "Size :" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:26 #, fuzzy msgid "Source :" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:27 #, fuzzy msgid "Status :" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:28 #, fuzzy msgid "Type :" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:29 #, fuzzy msgid "Value :" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:30 #, fuzzy msgid "Warnings" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "全てのリンク" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "ブックマーク・ファイル" #: ../ui/gurlchecker.glade.h:47 #, fuzzy msgid "Branch update" msgstr "親ページ:" #: ../ui/gurlchecker.glade.h:48 #, fuzzy msgid "By protocol" msgstr "プロトコル" #: ../ui/gurlchecker.glade.h:49 #, fuzzy msgid "By status" msgstr "状態" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" #: ../ui/gurlchecker.glade.h:53 #, fuzzy msgid "CSV export" msgstr "チェックした結果" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "キャンセル" #: ../ui/gurlchecker.glade.h:55 #, fuzzy msgid "Cancel check" msgstr "キャンセル" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "大小文字を無視する" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "チェックする" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "MX をチェックする" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "チェックした結果" #: ../ui/gurlchecker.glade.h:61 msgid "Check this option for links numbering" msgstr "" #: ../ui/gurlchecker.glade.h:62 msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" #: ../ui/gurlchecker.glade.h:63 msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" #: ../ui/gurlchecker.glade.h:67 msgid "Check this option to check FTP links" msgstr "" #: ../ui/gurlchecker.glade.h:68 msgid "Check this option to check MX of e-mails domains" msgstr "" #: ../ui/gurlchecker.glade.h:69 msgid "Check this option to check for e-mails syntax" msgstr "" #: ../ui/gurlchecker.glade.h:70 msgid "Check this option to check secure URLs too" msgstr "" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "" #: ../ui/gurlchecker.glade.h:76 msgid "Check this option to enable virus scan of pages content" msgstr "" #: ../ui/gurlchecker.glade.h:77 msgid "Check this option to export links label" msgstr "" #: ../ui/gurlchecker.glade.h:78 msgid "Check this option to export links labels" msgstr "" #: ../ui/gurlchecker.glade.h:79 msgid "Check this option to export only external links" msgstr "" #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" #: ../ui/gurlchecker.glade.h:82 msgid "Check this option to retreive images content for local preview" msgstr "" #: ../ui/gurlchecker.glade.h:83 msgid "Check this option to scan only one page" msgstr "" #: ../ui/gurlchecker.glade.h:84 #, fuzzy msgid "Choose a location" msgstr "ブックマーク・ファイルの選択" #: ../ui/gurlchecker.glade.h:85 #, fuzzy msgid "Clear export history" msgstr "プロジェクトの履歴をクリアする" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "プロジェクトの履歴をクリアする" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "検索履歴をクリアする" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "全リストを畳む" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "エラーとして扱う" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "" #: ../ui/gurlchecker.glade.h:91 #, fuzzy msgid "Cookie" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:92 #, fuzzy msgid "Cookies" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "デバッグ・モードを有効にする" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "" #: ../ui/gurlchecker.glade.h:95 #, fuzzy msgid "Delete project" msgstr "新しいプロジェクト" #: ../ui/gurlchecker.glade.h:96 #, fuzzy msgid "Description:" msgstr "説明" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "フォルダ" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "" #: ../ui/gurlchecker.glade.h:102 #, fuzzy msgid "Document" msgstr "ドキュメント" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "ドキュメント" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "ドメイン" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "チェック中にリンクのプロパティをダンプする" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "ダイナミック値" #: ../ui/gurlchecker.glade.h:110 #, fuzzy msgid "E-Mails" msgstr "E-メール" #: ../ui/gurlchecker.glade.h:111 #, fuzzy msgid "E-Mails syntax" msgstr "E-メールの書式をチェックする" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "チェックする URL を入力して下さい" #: ../ui/gurlchecker.glade.h:113 #, fuzzy msgid "Enter a local file path or URL to check" msgstr "チェックする URL を入力して下さい" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "全リストを展開する" #: ../ui/gurlchecker.glade.h:117 #, fuzzy msgid "Export" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:118 #, fuzzy msgid "Files" msgstr "フィルタ" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "フィルタ" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" #: ../ui/gurlchecker.glade.h:122 #, fuzzy msgid "Frame" msgstr "おかしなリンクです。" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "全般" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" #: ../ui/gurlchecker.glade.h:127 #, fuzzy msgid "History" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "E-メール" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "このアイテムを無視" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "画像のプレビュー" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "画像" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "" #: ../ui/gurlchecker.glade.h:137 #, fuzzy msgid "Link update" msgstr "リンク名" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "リンク" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "リンク名" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "ローカル・ファイル" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "" #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "META タグの内容" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "チェックするレベルの深さ(最大):" #: ../ui/gurlchecker.glade.h:146 #, fuzzy msgid "Network" msgstr "ヘッダ" #: ../ui/gurlchecker.glade.h:147 #, fuzzy msgid "New" msgstr "ネットワーク" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "新しいブックマークのプロジェクト" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "新規" #: ../ui/gurlchecker.glade.h:150 #, fuzzy msgid "New local file project" msgstr "新しいウェブ・プロジェクト" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "新しいプロジェクト" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "新しいウェブ・プロジェクト" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "ローカル・リンクのみチェックする" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "このフォルダとサブ・フォルダチェックする" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "ローカル・リンクのみチェックする" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "" #: ../ui/gurlchecker.glade.h:158 #, fuzzy msgid "Open a project" msgstr "新しいプロジェクト" #: ../ui/gurlchecker.glade.h:159 #, fuzzy msgid "Open project" msgstr "新しいプロジェクト" #: ../ui/gurlchecker.glade.h:160 #, fuzzy msgid "Page content" msgstr "ページの内容" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:163 #, fuzzy msgid "Parent update" msgstr "親ページ:" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "" #: ../ui/gurlchecker.glade.h:165 #, fuzzy msgid "Personal data" msgstr "個人データ" #: ../ui/gurlchecker.glade.h:166 #, fuzzy msgid "Project properties" msgstr "ページのプロパティ" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "プロトコル" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "" #: ../ui/gurlchecker.glade.h:170 #, fuzzy msgid "Remove all 404 links" msgstr "E-メールのチェック中..." #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "HTML ではないファイルの内容を取得する" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "画像を取得する" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "" #: ../ui/gurlchecker.glade.h:175 #, fuzzy msgid "Save bookmarks" msgstr "ブックマークの保存" #: ../ui/gurlchecker.glade.h:176 #, fuzzy msgid "Save report in..." msgstr "ヘッダの取得中..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "検索中..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "検索..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "類似したリンク先" #: ../ui/gurlchecker.glade.h:182 #, fuzzy msgid "Status code" msgstr "状態" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "" #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "" #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "二点間のチェックの待機時間\n" "(秒単位):" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "タイムアウト(秒):" #: ../ui/gurlchecker.glade.h:190 #, fuzzy msgid "Timeout:" msgstr "タイムアウト" #: ../ui/gurlchecker.glade.h:192 #, fuzzy msgid "Title:" msgstr "META タグ" #: ../ui/gurlchecker.glade.h:193 msgid "Uncheck this option to check external links too" msgstr "" #: ../ui/gurlchecker.glade.h:194 msgid "Uncheck this option to check external pages too" msgstr "" #: ../ui/gurlchecker.glade.h:195 msgid "Update all children for this link" msgstr "" #: ../ui/gurlchecker.glade.h:196 #, fuzzy msgid "Update all links..." msgstr "E-メールのチェック中..." #: ../ui/gurlchecker.glade.h:197 #, fuzzy msgid "Update main page..." msgstr "E-メールのチェック中..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "" #: ../ui/gurlchecker.glade.h:200 #, fuzzy msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "チェックを終了しています。\n" "\n" "少々、お待ち下さい..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "" #: ../ui/gurlchecker.glade.h:205 #, fuzzy msgid "View all link locations" msgstr "全てのリンク先を表示する" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "ソースの表示" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "親ページのソースの表示" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "" #: ../ui/gurlchecker.glade.h:212 #, fuzzy msgid "W3C validation" msgstr "適切な情報ではありません" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "" #: ../ui/gurlchecker.glade.h:214 #, fuzzy msgid "Warnings" msgstr "ページの情報" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "ウェブ・サイト" #: ../ui/gurlchecker.glade.h:216 msgid "When a cookie is added" msgstr "" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "SSL (HTTPS) を有効にする" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "表示(_D)" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "編集(_E)" #: ../ui/gurlchecker.glade.h:223 #, fuzzy msgid "_File" msgstr "フィルタ" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "プロジェクト(_P)" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "gURLChecker の設定" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "" #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "" #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "チェックするブックマーク・ファイルを選択して下さい" #, fuzzy #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "作業ディレクトリに十分な空き容量がないので、gURLChecker はチェックをキャン" #~ "セルしました。\n" #~ "\n" #~ "gURLChecker は空き容量を見積もるためにセキュリティ・マージンをとりました。" #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "このフォルダとサブ・フォルダチェックする" #, fuzzy #~ msgid "Please, check URL syntax and try again." #~ msgstr "指定した URL が正しいか確認して再度トライして下さい。" #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #, fuzzy #~ msgid "HTTPS" #~ msgstr "HTTP" #~ msgid "Choose a bookmarks file" #~ msgstr "ブックマーク・ファイルの選択" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "ブックマーク・ファイルの選択" #, fuzzy #~ msgid "Save links in..." #~ msgstr "ヘッダの取得中..." #~ msgid "Delete" #~ msgstr "削除" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "gURLChecker の設定" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "ページのプロパティ" #, fuzzy #~ msgid "link" #~ msgstr "リンク" #, fuzzy #~ msgid "Parent" #~ msgstr "親ページ:" #, fuzzy #~ msgid "All this link locations" #~ msgstr "全てのリンク先を表示する" #, fuzzy #~ msgid "This page online" #~ msgstr "親ページのソースの表示" #, fuzzy #~ msgid "Parent page online" #~ msgstr "親ページのソースの表示" #, fuzzy #~ msgid "Page source" #~ msgstr "ソースの表示" #, fuzzy #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "リモート・ホストがページの閲覧を拒否しました。\n" #~ "いくつかのウェブ・サーバは特定のファイルに対する HEAD メソッドを許可してい" #~ "ませんが、gURLChecker は HEAD メソッドを送信する必要があります :(\n" #~ "\n" #~ "あとで確認するか、設定でこのドメインをフィルタして下さい。" #, fuzzy #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "リモート・ホストがページの閲覧を拒否しました。\n" #~ "いくつかのウェブ・サーバは特定のファイルに対する HEAD メソッドを許可してい" #~ "ませんが、gURLChecker は HEAD メソッドを送信する必要があります :(\n" #~ "\n" #~ "あとで確認するか、設定でこのドメインをフィルタして下さい。" #, fuzzy #~ msgid "gURLChecker project page" #~ msgstr "gURLChecker" #, fuzzy #~ msgid "Graphic view" #~ msgstr "グラフィックス:" #, fuzzy #~ msgid "Pages relations" #~ msgstr "ページの情報" #, fuzzy #~ msgid "FTP" #~ msgstr "META タグ" #, fuzzy #~ msgid "HTTP" #~ msgstr "META タグ" #, fuzzy #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "ドメイン名を入力して下さい。" #~ msgid "Please, enter a directory name." #~ msgstr "ディレクトリ名を入力して下さい。" #~ msgid "The domain you entered seems not to be valid." #~ msgstr "入力したドメインは正しくないようです。" #, fuzzy #~ msgid "Please, select a project to delete." #~ msgstr "まず最初にアイテムを選択して下さい。" #~ msgid "Check email MX" #~ msgstr "E-メールの MX のチェック" #~ msgid "Email" #~ msgstr "E-メール" #~ msgid "Emails" #~ msgstr "E-メール" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "E-メールの MX のチェック" #, fuzzy #~ msgid "Authentication" #~ msgstr "ページの情報" #, fuzzy #~ msgid "Check" #~ msgstr "ヘッダ" #, fuzzy #~ msgid "Cookies" #~ msgstr "ページのプロパティ" #, fuzzy #~ msgid "Debug" #~ msgstr "ヘッダ" #~ msgid "*" #~ msgstr "*" gurlchecker-0.13.1/po/fr.po0000644000175000017500000017142111407055351012407 00000000000000# translation of fr.po to French # gURLChecker fr.po # Copyright (C) 2002-2010 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # Emmanuel Saracco , 2002-2010, 2010. msgid "" msgstr "" "Project-Id-Version: 0.12.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2010-03-28 20:53+0200\n" "Last-Translator: Emmanuel Saracco \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: \n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "Le cookie suivant va être supprimé" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "Le cookie suivant va être mis à jour" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "Le cookie suivant va être ajouté" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "%u - Erreur après: %s\n" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "%u - Erreur inconnue...\n" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Type" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 msgid "Custom action" msgstr "Action personnalisée" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Libellé" #: ../src/application.c:318 msgid "Date" msgstr "Date" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Nom" #: ../src/application.c:529 msgid "Content" msgstr "Contenu" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "A la fin de cette session" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "Entrez l'identifiant et le mot de passe pour %s sur %s" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "Résultat de la validation CSS W3C (libcroco)" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "Ceci est une feuille de styles valide." #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" "Un problème est survenu lors de l'utilisation de la bibliothèque Croco.\n" "Veuillez vérifier votre configuration ainsi que votre version de " "libcroco.\n" "\n" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "Résultat de la validation W3C (libtidy)" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" "Un problème est survenu lors de l'utilisation de la bibliothèque Tidy.\n" "Veuillez vérifier votre configuration ainsi que votre version de libtidy.\n" "\n" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "Mauvaises extensions détectées.\n" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "Virus détecté: " #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "Pas de référence" #: ../src/application.c:1536 msgid "Missing URL" msgstr "URL manquante" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "Non spécifié" #: ../src/application.c:1577 msgid "Unknown" msgstr "Inconnu" #: ../src/application.c:1582 msgid "(gURLChecker internals)" msgstr "(propre à gURLChecker)" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "Cache sur disque" #: ../src/application.c:1592 msgid "Not cached" msgstr "Pas en cache" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 msgid "E-Mail" msgstr "Courriel" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 msgid "Please, select a item." msgstr "Veuillez sélectionner un élément." #: ../src/application.c:1906 msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "" "Impossible de lancer navigateur web\n" "L'erreur suivante s'est produite:\n" #: ../src/application.c:1956 ../src/application.c:1988 msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "Le fichier correspondant est vide ou n'existe pas dans le répertoire de " "cache!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Voir le source" #: ../src/application.c:2029 msgid "Redirect" msgstr "Redirection" #: ../src/application.c:2030 msgid "Edit" msgstr "Éditer" #: ../src/application.c:2031 msgid "Create target" msgstr "Créer la cible" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Hôte injoignable" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "Le serveur distant ne répond pas du tout...\n" "Le délai d'attente configuré dans les préférences utilisateur de gURLChecker " "est peut-être trop court, ou alors le serveur est vraiment mort.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "Protocole FILE://" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Le protocole FILE a été détecté.\n" "Vous avez demandé à être prévenu lorsque je trouverais le protocole \"FILE://" "\" dans un lien." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Page disponible" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Aucun problème avec cette page.\n" "Le serveur est accessible et le document peut être chargé sans aucun " "problème." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "La page n'a pas été trouvée" #: ../src/application.c:2123 ../src/application.c:2240 msgid "The page does not exist on the server." msgstr "La page n'existe pas sur le serveur." #: ../src/application.c:2129 msgid "Bad E-Mail link" msgstr "Mauvais lien de courrier électronique" #: ../src/application.c:2130 msgid "The E-Mail specified in the link is not well formatted." msgstr "Le courriel spécifié dans le lien n'est pas dans un format correct." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problème avec le MX" #: ../src/application.c:2137 msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "Le MX du domaine de ce courriel n'est pas valide, ou alors c'est le domaine " "lui-même qui n'est pas valide." #: ../src/application.c:2144 msgid "E-Mail link ok" msgstr "Lien de courriel correct" #: ../src/application.c:2144 msgid "No problem with this E-Mail." msgstr "Aucun problème avec ce courriel." #: ../src/application.c:2150 msgid "Item ignored" msgstr "Elément ignoré" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "Vous avez choisi d'ignorer cet élément durant le scan de gURLChecker." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Lien malformé" #: ../src/application.c:2159 msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "Le lien HTML est malformé.\n" "La valeur du tag HREF est peut-être vide?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Aucune information valide" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker ne peut pas interpréter le code renvoyé par l'hôte distant.\n" "Merci d'envoyer la valeur du champ \"Statut\" de l'en-tête à l'auteur de " "gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "L'emplacement de la page a changé" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "Aucun réel problème avec cette page.\n" "La ressource demandée a juste été déplacée sur le serveur." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "L'emplacement de la page a changé temporairement" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" "La réponse à la requête doit être obtenue à l'aide d'une URI différente" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Accès protégé" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Cette page nécessite une authentification pour être accédée." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Accès interdit" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" "Le serveur a refusé de servir la page.\n" "Etant donné la façon dont gURLChecker traite les liens cette erreur ne " "devrait pas arriver.\n" "\n" "Merci de reporter ce bug à l'équipe gURLChecker." #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Page disponible (mais aucun contenu)" #: ../src/application.c:2225 msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Aucun problème avec cette page, mais elle ne contient aucune donnée...\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "URL mal construite" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "La requête n'a pas pu être interprétée par le serveur car sa syntaxe est " "mauvaise." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Méthode non autorisée" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "L'hôte distant a refusé de déservir la page.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Erreur interne de l'hôte distant" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "La page contient des erreurs ou bien le serveur est mal configuré.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2262 msgid "Method not supported" msgstr "Méthode non supportée" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "Mauvais intermédiaire" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "Le serveur intermédiaire a fourni une réponse invalide. Le serveur HTTP a " "agi en tant qu'intermédiaire (passerelle ou proxy) avec un autre serveur, et " "a reçu de ce dernier une réponse invalide en essayant de traiter la " "requête.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Service indisponible" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "Le serveur est incapable de répondre à cause d'une trop forte montée en " "charge ou d'une opération de maintenance. Il se peut également que votre " "proxy ne puisse pas joindre ce serveur.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Réponse incomplète" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "Le serveur, jouant un rôle de passerelle ou de proxy, n'a pas reçu à temps " "la réponse du serveur spécifié dans l'URL (ex. HTTP, FTP, LDAP) ou d'un " "serveur intermédiaire (ex. DNS) duquel il dépendait pour y arriver." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "Accès interdit, ou bien trop de connexions" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" "Ce serveur n'accepte pas les connexions anonymes, ou bien le nombre maximum " "de connections autorisées a été atteint.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Le délais d'attente à été dépassé pour cette page" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Le délai d'attente configuré dans les préférences utilisateur de gURLChecker " "est peut-être trop court, ou alors le serveur distant est trop occupé en ce " "moment pour répondre aux requêtes de gURLChecker, ou bien encore le serveur " "n'existe pas.\n" "\n" "Essayez de refaire une vérification." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "" "Impossible de lancer une nouvelle instance de gURLChecker; l'erreur suivante " "s'est produite:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" "Un problème est survenu durant l'initialisation de la bibliothèque Clamav.\n" "%s\n" "Veuillez vérifier votre configuration ainsi que votre version de " "libclamav.\n" "\n" "Les virus ne seront pas détectés." #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" "Un problème est survenu durant l'initialisation de la bibliothèque Croco.\n" "Veuillez vérifier votre configuration ainsi que votre version de " "libcroco.\n" "\n" "Les feuilles de styles ne seront pas validées." #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" "Un problème est survenu durant l'initialisation de la bibliothèque Tidy.\n" "Veuillez vérifier votre configuration ainsi que votre version de libtidy.\n" "\n" "Les pages HTML ne seront pas validées." #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Vérification en cours..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" "Emmanuel Saracco\n" "\n" "Contributeurs:\n" "Stephane Loeuillet" #: ../src/application.c:3074 msgid "Manpage:" msgstr "Page de manuel:" #: ../src/application.c:3078 msgid "Code:" msgstr "Code:" #: ../src/application.c:3083 msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana, Japonais\n" "Alexander Hunziker, Allemand\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Espagnol\n" "Gunner Poulsen, Danois\n" "Emmanuel Saracco, Français\n" "Angelo Theodorou, Italien\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker est un vérificateur graphique de liens web.\n" "Il fonctionne sur un site entier, une page locale ou un fichier de signets." #: ../src/application.c:3327 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "" "Vous pouvez sélectionner un fichier de signets local ou distant.\n" "Ce fichier doit être au format XBEL, Opera, Google Chrome, ou bien être une " "base de données Firefox" #: ../src/application.c:3332 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "" "Vous pouvez sélectionner un fichier de signets local ou distant.\n" "Ce fichier doit être au format XBEL, Opera, ou bien être une base de données " "Firefox" #: ../src/application.c:3337 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "" "Vous pouvez sélectionner un fichier de signets local ou distant.\n" "Ce fichier doit être au format XBEL, Opera, ou Google Chrome" #: ../src/application.c:3342 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "" "Vous pouvez sélectionner un fichier de signets local ou distant.\n" "Ce fichier doit être au format XBEL ou Opera" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nouveau domaine à rejeter" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Ajouter un domaine à rejeter" #: ../src/application.c:3372 msgid "This domain name is not valid." msgstr "Le nom de domaine n'est pas valide." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Nouveau répertoire à rejeter" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Ajouter un répertoire à rejeter" #: ../src/application.c:3543 msgid "Please, enter a string to search." msgstr "Veuillez saisir une chaîne à rechercher." #: ../src/application.c:3566 msgid "Please, check that there is no mismatch in your URL and try again." msgstr "" "Merci de vérifier qu'il n'y a pas d'erreur dans votre URL et de recommencer." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "Désolé, mais cette version de gurlchecker n'a pas de support SSL" #: ../src/application.c:3672 ../src/project.c:441 msgid "[Local file] Page information" msgstr "[Fichier local] Information sur la page" #: ../src/application.c:3675 ../src/project.c:444 msgid "[Web site] Page information" msgstr "[Site web] Informations sur la page" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Choisissez un fichier de signets à vérifier." #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" "Un problème est survenu lors de la récupération du fichier de signets " "distant.\n" "Essayez d'augmenter le délai du timeout." #: ../src/application.c:3799 msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "Le fichier saisi n'est pas correct, ou bien vous n'avez pas les droits " "nécessaires.\n" "Veuillez choisir un fichier de signets valide." #: ../src/application.c:3815 msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Le format du fichier est incorrect.\n" "gurlchecker ne peut traiter que des signets au format XBEL, " "Opera, Google Chrome, et les fichiers de base de données de " "Firefox." #: ../src/application.c:3822 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Le format du fichier est incorrect.\n" "Cette version de gurlchecker ne peut traiter que des signets au format " "XBEL, Opera, et les fichiers de base de données de Firefox." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Le format du fichier est incorrect.\n" "Cette version de gurlchecker ne peut traiter que des fichiers XBEL, Opera, ou Google Chrome." #: ../src/application.c:3835 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Le format du fichier est incorrect.\n" "Cette version de gurlchecker ne peut traiter que des fichiers XBEL " "ou Opera." #: ../src/application.c:3852 msgid "[Remote bookmarks] Page information" msgstr "[Signets distants] Informations sur la page" #: ../src/application.c:3855 msgid "[Local bookmarks] Page information" msgstr "[Signets locaux] Informations sur la page" #: ../src/application.c:4071 ../src/check.c:1556 msgid "Cleaning..." msgstr "Nettoyage..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" "Tous les signets pointant sur des pages inexistantes seront supprimés.\n" "Voulez-vous continuer?" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" "Le lien sélectionné va être supprimé.\n" "Voulez-vous continuer?" #: ../src/callbacks.c:900 ../src/callbacks.c:918 msgid "Please, select a project." msgstr "Veuillez sélectionner un projet." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "Êtes-vous certain de vouloir supprimer ce projet?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Lien Hypertexte" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Lien Local Hypertexte" #: ../src/check.c:404 msgid "Local Image" msgstr "Image locale" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Image" #: ../src/check.c:410 msgid "Frame link" msgstr "Lien de cadre" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "Lien Feuille de style" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Type Inconnu" #: ../src/check.c:867 msgid "Retrieving source..." msgstr "Récupération du source..." #: ../src/check.c:998 msgid "Continue" msgstr "Continuer" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Suspendre" #: ../src/check.c:1045 msgid "Checking file (FTP)..." msgstr "Vérification du fichier (FTP)..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Récupération de l'en-tête..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Elément déjà vérifié..." #: ../src/check.c:1316 #, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "Le MX %s de ce domaine est en vie et écoute bien sur le port 25." #: ../src/check.c:1322 msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "" "Le MX ne répond pas ou bien le domaine de ce courriel n'est pas valide." #: ../src/check.c:1328 msgid "The E-Mail's domain is not valid." msgstr "Le domaine de ce courriel n'est pas valide." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "SÉCURITÉ: Recherche des virus..." #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "W3C: Validation de la feuille de styles CSS..." #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "W3C: Validation de la page HTML..." #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "SÉCURITÉ: Recherche de mauvaises extensions [%s]..." #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Attente de %u seconde(s)..." #: ../src/check.c:2119 msgid "Checking E-Mail..." msgstr "Vérification du courriel..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Vérification d'un fichier local..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 msgid "Updating report..." msgstr "Mise à jour du rapport..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Recherche..." #: ../src/web_site.c:267 msgid "Updating link..." msgstr "Mise à jour du lien..." #: ../src/web_site.c:683 msgid "Updating branch..." msgstr "Mise à jour de la branche..." #: ../src/web_site.c:733 msgid "Updating all project..." msgstr "Mise à jour de tout le projet..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Vérification de %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "PAGE PRINCIPALE" #: ../src/web_site.c:848 msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "L'accès à URL spécifiée pour le projet est protégé.\n" "La vérification a été abandonnée." #: ../src/web_site.c:908 msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "L'URL spécifiée pour le projet ne répond pas.\n" "La vérification a été abandonnée." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "Les signets distants doivent-ils être sauvegardés sur votre machine?" #: ../src/bookmarks.c:311 msgid "Save bookmarks file" msgstr "Enregistrer le fichier de signets" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "Saisir un nom de fichier" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Le format du nom de fichier est incorrect.\n" "Rien n'a été fait." #: ../src/bookmarks.c:344 msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Les changements sur les signets vont être enregistrés.\n" "Votre ancien fichier de signets sera renommé avec l'extension \".uc\".\n" "Voulez-vous enregistrer?" #: ../src/bookmarks.c:379 msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Une erreur est survenue\n" "Rien n'a été fait." #: ../src/bookmarks.c:391 msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Les changements sur les signets vont être appliqués.\n" "Nous vous recommandons de faire une sauvegarde manuelle de la base de " "données Firefox avant d'appliquer les changements!\n" "Voulez-vous les appliquer?" #: ../src/bookmarks.c:1058 msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Le fichier XML indiqué n'est pas bien formé ou le type d'encodage n'a pas pu " "être détecté...\n" "Si vous êtes en train de vérifier un fichier de signets distant, essayez " "d'augmenter la valeur du timeout.\n" "La vérification a été abandonnée." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Le fichier XML spécifié est vide.\n" #: ../src/main.c:126 msgid "Wrote by Emmanuel Saracco ." msgstr "Ecrit par Emmanuel Saracco " #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Ce logiciel est libre; voir les sources pour les conditions de reproduction. " "AUCUNE garantie n'est donnée; tant pour des raisons COMMERCIALES que pour " "RÉPONDRE À UN BESOIN PARTICULIER." #: ../src/main.c:136 #, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Usage: %s [OPTION] [URL]\n" "Un vérificateur de liens web graphique.\n" "\n" " -h, --help affiche cette aide\n" " -V, --version affiche la version de %s\n" " -u, --http-user utilisateur pour l'authentification basique\n" " -p, --http-passwd mot de passe pour l'authentification basique\n" " -A, --no-urls-args ignorer les arguments des URLs\n" "\n" "Merci de signaler les bug à \n" #: ../src/report.c:244 msgid "Cannot execute xsltproc; the following error occured:" msgstr "Impossible de lancer xsltproc; l'erreur suivante s'est produite:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Liens vérifiés : %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Liens vérifiés : %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Liens corrects" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Mauvais liens" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Liens malformés" #: ../src/report.c:499 msgid "Ignored links" msgstr "Liens ignorés" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Délais dépassés" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Temps écoulé: %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "%lu octets" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "%.2f Ko (%lu octets)" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "%.2f Mo (%lu octets)" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Traitement du code HTML..." #: ../src/html_parser.c:129 msgid "Parsing CSS code..." msgstr "Traitement du code CSS..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u élément(s) trouvés" #: ../src/search.c:528 msgid "Search ended" msgstr "Recherche terminée" #. status bar message #: ../src/project.c:361 #, c-format msgid "Loading [%s] project..." msgstr "Chargement du projet [%s]..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Créé le %s\n" "Mis à jour le %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Veuillez saisir un titre pour le projet en cours." #: ../src/project.c:1391 msgid "Save the current project ?" msgstr "Sauvegarder le projet en cours ?" #: ../src/project.c:1400 msgid "Saving project..." msgstr "Sauvegarde du projet..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Statut: %s\n" "Emplacement: %s\n" "Référence: %s\n" "Dernière modification: %s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "Vérificateur de liens graphique" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gurlchecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'option `%s' est ambigüe\n" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'option `--%s' nécessite un argument\n" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'option `%c%s' ne prend pas d'argument\n" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'option `%s' nécessite un argument\n" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: option `--%s' inconnue\n" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: option `%c%s' inconnue\n" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: option illégale -- %c\n" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: option invalide -- %c\n" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: cette option nécessite un argument -- %c\n" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'option `-W %s' est ambigüe\n" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'option `-W %s' ne prend pas d'argument\n" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr " " #: ../ui/gurlchecker.glade.h:4 msgid "CSS Extensions to check" msgstr "Extensions CSS à vérifier" #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Gestion du contenu" #: ../ui/gurlchecker.glade.h:6 msgid "Documents to ignore" msgstr "Documents à ignorer" #: ../ui/gurlchecker.glade.h:7 msgid "Expires :" msgstr "Expire :" #: ../ui/gurlchecker.glade.h:8 msgid "Extensions to search for" msgstr "Extensions à rechercher" #: ../ui/gurlchecker.glade.h:9 msgid "Files to check" msgstr "Fichiers à vérifier" #: ../ui/gurlchecker.glade.h:10 msgid "HTML extensions to check" msgstr "Extensions HTML à vérifier" #: ../ui/gurlchecker.glade.h:11 msgid "Images to ignore" msgstr "Images à ignorer" #: ../ui/gurlchecker.glade.h:12 msgid "Location :" msgstr "Emplacement :" #: ../ui/gurlchecker.glade.h:13 msgid "Location:" msgstr "Emplacement:" #: ../ui/gurlchecker.glade.h:14 msgid "Meta Tags" msgstr "Tags Meta" #: ../ui/gurlchecker.glade.h:15 msgid "Modified :" msgstr "Modifié :" #: ../ui/gurlchecker.glade.h:16 msgid "Name :" msgstr "Nom :" #: ../ui/gurlchecker.glade.h:17 msgid "Options" msgstr "Options:" #: ../ui/gurlchecker.glade.h:18 msgid "Page:" msgstr "Page :" #: ../ui/gurlchecker.glade.h:19 msgid "Path :" msgstr "Chemin :" #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Propriétés" #: ../ui/gurlchecker.glade.h:21 msgid "Referrer :" msgstr "Référence :" #: ../ui/gurlchecker.glade.h:22 msgid "Security:" msgstr "Sécurité :" #: ../ui/gurlchecker.glade.h:23 msgid "Server type :" msgstr "Type de serveur :" #: ../ui/gurlchecker.glade.h:24 msgid "Server:" msgstr "Serveur :" #: ../ui/gurlchecker.glade.h:25 msgid "Size :" msgstr "Taille :" #: ../ui/gurlchecker.glade.h:26 msgid "Source :" msgstr "Source :" #: ../ui/gurlchecker.glade.h:27 msgid "Status :" msgstr "Statut :" #: ../ui/gurlchecker.glade.h:28 msgid "Type :" msgstr "Type :" #: ../ui/gurlchecker.glade.h:29 msgid "Value :" msgstr "Valeur :" #: ../ui/gurlchecker.glade.h:30 msgid "Warnings" msgstr "Alertes" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" "Vous pouvez éditer les propriétés du cookie avant de l'accepter:" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "Accepter" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "Toujours accepter les cookies" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "Activer" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "Activer la validation W3C" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "Activer les vérifications de sécurité" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "Options avancées" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" "Après ce temps, les tentatives de connexion infructueuses seront abandonnées" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Tous les liens" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "Authentification" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" "Mauvaises extensions à rechercher, séparées par une virgule.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "Mauvaises extensions sur le serveur" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "Arrêter de vérifier une machine après" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Fichier de signets" #: ../ui/gurlchecker.glade.h:47 msgid "Branch update" msgstr "Mettre à jour la branche" #: ../ui/gurlchecker.glade.h:48 msgid "By protocol" msgstr "Par protocole" #: ../ui/gurlchecker.glade.h:49 msgid "By status" msgstr "Par statut" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "Par type" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" "Extensions CSS à vérifier, séparées par une virgule.\n" "Ex.: css" #: ../ui/gurlchecker.glade.h:53 msgid "CSV export" msgstr "Export CSV" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Annuler" #: ../ui/gurlchecker.glade.h:55 msgid "Cancel check" msgstr "Annuler le scan" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Respecter la casse" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Vérification" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Vérification du MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Rapport de vérification" #: ../ui/gurlchecker.glade.h:61 msgid "Check this option for links numbering" msgstr "Cochez cette option pour la numérotation des liens" #: ../ui/gurlchecker.glade.h:62 msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" "Cochez cette option si vous n'êtes pas intéressé par le contenu des pages de " "signets" #: ../ui/gurlchecker.glade.h:63 msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Cochez cette option si vous voulez limiter la vérification au répertoire " "donné et à ses sous-répertoires dans le site Web indiqué" #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" "Cochez cette option pour éviter un possible scan infini (quand des arguments " "sont générés aléatoirement, par exemple)" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" "Cochez cette option pour éviter certaines méchantes boucles infinies (quand " "certains arguments sont générés aléatoirement, par exemple)" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" "Cochez cette option pour être prévenu lorsqu'une authentification basique " "est nécessaire" #: ../ui/gurlchecker.glade.h:67 msgid "Check this option to check FTP links" msgstr "Cochez cette option pour vérifier les liens FTP" #: ../ui/gurlchecker.glade.h:68 msgid "Check this option to check MX of e-mails domains" msgstr "Cochez cette option pour vérifier le MX du domaine des courriels" #: ../ui/gurlchecker.glade.h:69 msgid "Check this option to check for e-mails syntax" msgstr "Cochez cette option pour vérifier la syntaxe des courriels" #: ../ui/gurlchecker.glade.h:70 msgid "Check this option to check secure URLs too" msgstr "Cochez cette option pour vérifier également les URLs sécurisées" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "Cochez cette option pour activer la valisation CSS" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "Cochez cette option pour activer la validation HTML" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "Cochez cette option pour activer la validation W3C" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" "Cochez cette option pour activer la détection des extensions inhabituelles" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "Cochez cette option pour activer les vérifications de sécurité" #: ../ui/gurlchecker.glade.h:76 msgid "Check this option to enable virus scan of pages content" msgstr "" "Cochez cette option pour activer la recherche de virus dans le contenu des " "pages" #: ../ui/gurlchecker.glade.h:77 msgid "Check this option to export links label" msgstr "Cochez cette option pour exporter le libellé des liens" #: ../ui/gurlchecker.glade.h:78 msgid "Check this option to export links labels" msgstr "Cochez cette option pour exporter le libellé des liens" #: ../ui/gurlchecker.glade.h:79 msgid "Check this option to export only external links" msgstr "Cochez cette option pour exporter uniquement les liens externes" #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" "Cochez cette option pour ignorer les serveurs qui ne répondent toujours pas " "après n essais" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" "Cochez cette option pour récupérer le contenu des documents autres que HTML " "et images: PDF, tarballs..." #: ../ui/gurlchecker.glade.h:82 msgid "Check this option to retreive images content for local preview" msgstr "" "Cochez cette option pour récupérer le contenu des images afin de les " "visualiser en local" #: ../ui/gurlchecker.glade.h:83 msgid "Check this option to scan only one page" msgstr "Cochez cette option pour ne scanner qu'une seule page" #: ../ui/gurlchecker.glade.h:84 msgid "Choose a location" msgstr "Choisissez un emplacement" #: ../ui/gurlchecker.glade.h:85 msgid "Clear export history" msgstr "Vider l'historique des exports" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Vider l'historique des projets" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Vider l'historique des recherches" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Replier toute la liste" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Considérer comme une erreur" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "Considérer que le code n'est pas compatible W3C s'il génère:" #: ../ui/gurlchecker.glade.h:91 msgid "Cookie" msgstr "Cookie" #: ../ui/gurlchecker.glade.h:92 msgid "Cookies" msgstr "Cookies" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "Mode DEBUG" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "Debug" #: ../ui/gurlchecker.glade.h:95 msgid "Delete project" msgstr "Supprimer le projet" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Description:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Répertoires" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Afficher les tooltips" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "Ne pas accepter de cookies" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "Ne plus afficher ce dialogue" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "Ne pas récupérer les contenus (accélère la vérification)" #: ../ui/gurlchecker.glade.h:102 msgid "Document" msgstr "Document" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" "Extensions des documents à ignorer, séparées par une virgule.\n" "Ex.: asp,aspx,exe,pif" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Documents" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domaines" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Afficher les propriétés des liens durant la vérification" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Valeurs dynamiques" #: ../ui/gurlchecker.glade.h:110 msgid "E-Mails" msgstr "Courriels" #: ../ui/gurlchecker.glade.h:111 msgid "E-Mails syntax" msgstr "Syntaxe des courriels" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Entrer une URL à vérifier" #: ../ui/gurlchecker.glade.h:113 msgid "Enter a local file path or URL to check" msgstr "Entrer un chemin de fichier local ou une URL à vérifier" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "Erreurs" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "Exclure les images" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Déplier toute la liste" #: ../ui/gurlchecker.glade.h:117 msgid "Export" msgstr "Export" #: ../ui/gurlchecker.glade.h:118 msgid "Files" msgstr "Fichiers" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtres" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" "Premières parties des types mimes des fichiers dans lesquels chercher des " "virus, séparées par une virgule.\n" "Ex.: application,audio,image,text,video,x-world" #: ../ui/gurlchecker.glade.h:122 msgid "Frame" msgstr "Cadre" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Général" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" "Extensions HTML à vérifier, séparées par une virgule.\n" "Ex.: php,html,htm,pl" #: ../ui/gurlchecker.glade.h:127 msgid "History" msgstr "Historique" #: ../ui/gurlchecker.glade.h:128 msgid "IP address" msgstr "Adresse IP" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "Ignorer les arguments des URLs" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignorer cet élément" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" "Extensions des images à ignorer, séparées par une virgule.\n" "Ex.: gif,png" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Aperçu de l'image" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Images" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "Export des libellés" #: ../ui/gurlchecker.glade.h:137 msgid "Link update" msgstr "Mettre à jour le lien" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Liens" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Nom des liens" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Fichier local" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Emplacement:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "Identifiant : " #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "Contenu des tags META" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Profondeur maximum de l'exploration:" #: ../ui/gurlchecker.glade.h:146 msgid "Network" msgstr "Réseau" #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Nouveau" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nouveau projet de signets" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nouvelle instance" #: ../ui/gurlchecker.glade.h:150 msgid "New local file project" msgstr "Nouveau projet de fichier local" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nouveau projet" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nouveau projet web" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "Numérotation" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Vérifier uniquement les liens locaux" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Vérifier uniquement ce répertoire et ses sous-répertoires" #: ../ui/gurlchecker.glade.h:156 msgid "Only external links" msgstr "Uniquement les liens externes" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Ouvrir" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Ouvrir un projet" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Ouvrir un projet" #: ../ui/gurlchecker.glade.h:160 msgid "Page content" msgstr "Contenu de la page" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Informations sur la page" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Propriétés de la page" #: ../ui/gurlchecker.glade.h:163 msgid "Parent update" msgstr "Mettre à jour la page parente" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "Mot de passe : " #: ../ui/gurlchecker.glade.h:165 msgid "Personal data" msgstr "Données personnelles" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Propriétés du projet" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "Demander pour l'authentification" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protocoles" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "Refuser" #: ../ui/gurlchecker.glade.h:170 msgid "Remove all 404 links" msgstr "Supprimer tous les liens 404" #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "Export du rapport" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Récupérer le contenu des fichiers qui ne sont pas au format HTML" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Récupérer le contenu des images" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Enregistrer" #: ../ui/gurlchecker.glade.h:175 msgid "Save bookmarks" msgstr "Enregistrer les signets" #: ../ui/gurlchecker.glade.h:176 msgid "Save report in..." msgstr "Enregistrer le rapport dans..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Recherche en cours..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Recherche..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "Sécurité" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "Alertes de sécurité" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Autres occurences..." #: ../ui/gurlchecker.glade.h:182 msgid "Status code" msgstr "Code de statut" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "Feuille de style" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "Cette option ne sera active que pour les projets Site web." #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "Ces choix surchargeront ceux de [Filtres/Documents]." #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Temps à respecter entre deux vérifications, \n" "en secondes:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Délai d'attente en secondes:" #: ../ui/gurlchecker.glade.h:190 msgid "Timeout:" msgstr "Délais de connexion:" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Titre:" #: ../ui/gurlchecker.glade.h:193 msgid "Uncheck this option to check external links too" msgstr "Décochez cette option pour vérifier également les liens externes" #: ../ui/gurlchecker.glade.h:194 msgid "Uncheck this option to check external pages too" msgstr "Décochez cette option pour vérifier également les pages externes" #: ../ui/gurlchecker.glade.h:195 msgid "Update all children for this link" msgstr "Mettre à jour tous les enfants pour ce lien" #: ../ui/gurlchecker.glade.h:196 msgid "Update all links..." msgstr "Mettre à jour tous les liens" #: ../ui/gurlchecker.glade.h:197 msgid "Update main page..." msgstr "Mettre à jour la page principale..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "Mettre à jour la page qui contient ce lien" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "Mettre à jour ce lien" #: ../ui/gurlchecker.glade.h:200 msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Mise à jour des compteurs du rapport\n" "\n" "Veuillez patienter..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "Activer le mode passif" #: ../ui/gurlchecker.glade.h:205 msgid "View all link locations" msgstr "Voir toutes les occurrences de ce lien" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "Voir mauvaises extensions" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Visualiser en ligne" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Visualiser la page parente en ligne" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "Virus" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "Alertes W3C" #: ../ui/gurlchecker.glade.h:212 msgid "W3C validation" msgstr "Validation W3C" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "Attendre" #: ../ui/gurlchecker.glade.h:214 msgid "Warnings" msgstr "Avertissements" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Site web" #: ../ui/gurlchecker.glade.h:216 #, fuzzy msgid "When a cookie is added" msgstr "Lorsqu'un cookie est ajouté" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "Lorsqu'un cookie est supprimé" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "Lorsqu'un cookie est mis à jour" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "Supprimera tout signet pointant vers une page inexistante" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Avec SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Affichage" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Edition" #: ../ui/gurlchecker.glade.h:223 msgid "_File" msgstr "_Fichier" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "Aid_e" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Projet" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "délais dépassés" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "Préférences pour gURLChecker" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "gURLChecker utilise la librairie libclamav pour détecter les virus" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" "gURLChecker utilise la librairie libcroco pour valider les feuilles de " "styles CSS2" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "gURLChecker utilise la librairie libtidy pour valider les pages HTML" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "seconde(s) entre les vérifications." #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "seconde(s)" #~ msgid "" #~ "Emmanuel Saracco \n" #~ "\n" #~ "Contributors:\n" #~ "Stephane Loeuillet " #~ msgstr "" #~ "Emmanuel Saracco \n" #~ "\n" #~ "Contributeurs:\n" #~ "Stephane Loeuillet " #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "" #~ "Vous pouvez sélectionner un fichier de signets local ou distant.\n" #~ "Cette version de gurlchecker n'ayant pas de support sqlite3, ce fichier " #~ "doit être au format XBEL" #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker a abandonné la vérification car il n'y a plus assez d'espace " #~ "sur la partition du répertoire de travail.\n" #~ "gURLChecker a pris une marge de sécurité pour estimer l'espace disque " #~ "nécessaire." #~ msgid "Flash option: check it to check only one page" #~ msgstr "Option flash: cochez-là pour ne vérifier qu'une seule page" #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Ne vérifier que ce répertoire et ses sous-répertoires" #~ msgid "" #~ "The URL you entered was not understoud. \n" #~ "For the moment gURLChecker only support a few protocols for bookmarks " #~ "checking." #~ msgstr "" #~ "L'URI saisie n'a pas été reconnue.\n" #~ "Pour le moment gURLChecker ne supporte que quelques protocoles pour la " #~ "vérification des signets." #~ msgid "Please, check URL syntax and try again." #~ msgstr "Merci de vérifier la syntaxe de l'URL et de réessayer." #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "HTTPS" #~ msgstr "HTTPS" #~ msgid "Choose a bookmarks file" #~ msgstr "Choisir un fichier de signets" #~ msgid "Choose a export path" #~ msgstr "Choisir un répertoire d'export" #~ msgid "Check this options to check external pages too" #~ msgstr "Cochez cette option pour vérifier également les pages externes" #~ msgid "HTML" #~ msgstr "HTML" #~ msgid "Save links in..." #~ msgstr "Enregistrer les liens vers..." #~ msgid "Delete" #~ msgstr "Supprimer" #~ msgid "Save _project" #~ msgstr "Enregistrer le _projet" #~ msgid "gtk-about" #~ msgstr "gtk-about" #~ msgid "gtk-find" #~ msgstr "gtk-find" #~ msgid "gtk-preferences" #~ msgstr "gtk-preferences" #~ msgid "gtk-properties" #~ msgstr "gtk-properties" #~ msgid "gtk-quit" #~ msgstr "gtk-quit" #~ msgid "Aid_e" #~ msgstr "Aid_e" #~ msgid "_Fichier" #~ msgstr "_Fichier" #~ msgid "" #~ "Check this option to check links that point on another host that the one " #~ "specified in the project URL" #~ msgstr "" #~ "Cochez cette option pour ne pas vérifier les liens qui pointent autre " #~ "part que sur le serveur spécifié dans l'URL du projet" #~ msgid "" #~ "Check this option to check only one page and don't be interested on pages " #~ "content" #~ msgstr "" #~ "Cochez cette option pour ne vérifier qu'une seule page et n'êtes pas " #~ "intéressé par les contenus" #~ msgid "" #~ "Check this options to check pages under other repositories thant the one " #~ "specified for the project URL" #~ msgstr "" #~ "Cochez cette option pour éviter de vérifier les pages se trouvant sous un " #~ "autre répertoire que celui spécifié dans l'URL du projet" #~ msgid "Check this option is you want to export links labels" #~ msgstr "Cochez cette option si vous voulez exporter le libellé des liens" #~ msgid "Check this option to numbered lines in the export" #~ msgstr "Cochez cette option pour numéroter les lignes exportées" #~ msgid "Virii" #~ msgstr "Virus" gurlchecker-0.13.1/po/de.po0000644000175000017500000016306311407055351012373 00000000000000# gURLChecker de.po # Copyright (C) 2002 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # Alexander Hunziker , 2003. # # msgid "" msgstr "" "Project-Id-Version: gURLChecker 0.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2004-10-13 15:55+0100\n" "Last-Translator: Alexander Hunziker \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Typ" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 #, fuzzy msgid "Custom action" msgstr "Wählen Sie eine Lesezeichendatei" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Titel" #: ../src/application.c:318 #, fuzzy msgid "Date" msgstr "Löschen" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Name" #: ../src/application.c:529 msgid "Content" msgstr "Inhalt" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "Geben Sie Benutzername und Passwort ein für %s in %s" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "" #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "Kein Referrer" #: ../src/application.c:1536 msgid "Missing URL" msgstr "Fehlende URL" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "Nicht angegeben" #: ../src/application.c:1577 msgid "Unknown" msgstr "Unbekannt" #: ../src/application.c:1582 msgid "(gURLChecker internals)" msgstr "(gURLChecker Interna)" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "lokaler Cache" #: ../src/application.c:1592 msgid "Not cached" msgstr "Nicht gecached" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 #, fuzzy msgid "E-Mail" msgstr "E-Mail" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 #, fuzzy msgid "Please, select a item." msgstr "Bitte wählen Sie zuerst einen Eintrag." #: ../src/application.c:1906 #, fuzzy msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "" "Der Webbrowser konnte nicht gestartet werden, der folgene Fehler trat auf:" #: ../src/application.c:1956 ../src/application.c:1988 #, fuzzy msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "Die entsprechende Datei ist leer oder existiert nicht im Cache-Verzeichnis!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Quelltext betrachten" #: ../src/application.c:2029 msgid "Redirect" msgstr "" #: ../src/application.c:2030 #, fuzzy msgid "Edit" msgstr "_Bearbeiten" #: ../src/application.c:2031 msgid "Create target" msgstr "" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Server nicht verfügbar" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "Der Server reagiert nicht...\n" "Sie können die Zeitüberschreitungslimite ändern - es ist aber auch möglich, " "dass der Server im Moment ein Problem hat.\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "file:// Protokoll" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "file:// Protokoll erkannt.\n" "Sie wollten gewarnt werden, wenn gURLChecker einen solchen Link findet." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Seite verfügbar" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Keine Probleme mit dieser Seite entdeckt.\n" "Der Server funktioniert und das Dokument kann ohne Probleme geladen werden." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Seite nicht gefunden" #: ../src/application.c:2123 ../src/application.c:2240 #, fuzzy msgid "The page does not exist on the server." msgstr "Diese Seite existiert nicht auf dem Server." #: ../src/application.c:2129 #, fuzzy msgid "Bad E-Mail link" msgstr "Fehlerhafter E-Mail Link" #: ../src/application.c:2130 #, fuzzy msgid "The E-Mail specified in the link is not well formatted." msgstr "Die E-Mail Adresse in diesem Link weist eine falsche Syntax auf." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problem mit MX" #: ../src/application.c:2137 #, fuzzy msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "Der MX der Domäne dieser E-Mail Adresse ist ungültig oder die Domäne selbst " "existiert nicht." #: ../src/application.c:2144 #, fuzzy msgid "E-Mail link ok" msgstr "E-Mail OK" #: ../src/application.c:2144 #, fuzzy msgid "No problem with this E-Mail." msgstr "Mit dieser E-Mail Adresse wurden keine Probleme erkannt" #: ../src/application.c:2150 msgid "Item ignored" msgstr "Eintrag ignoriert" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "Sie wiesen gURLChecker an, diesen Eintrag zu ignorieren." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Syntaxfehler in Link" #: ../src/application.c:2159 msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "Der HTML Link hat eine fehlerhafte Syntax.\n" "Vielleicht ist das HREF Attribut leer, oder es enthält einen falschen Link?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Keine gültige Information" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker kann den Statuscode des Webservers nicht interpretieren.\n" "Bitte melden Sie den Wert des \"Status\" Feldes im Header an den Autor von " "gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "Seite wurde permanent verschoben" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "Kein ernsthaftes Problem mit dieser Seite.\n" "Die angeforderte Seite wurde lediglich mit einem neuen permantenten URI " "versehen." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "Seite wurde temporär verschoben" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Eingeschränkter Zugriff" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "" "Diese Seite bedarf einer Authentifizierung, um geladen werden zu können." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Zugriff verweigert" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Seite verfügbar, aber ohne Inhalt" #: ../src/application.c:2225 #, fuzzy msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Kein Problem mit dieser Seite, aber sie hat keinen Inhalt...\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "Syntaxfehler in URL" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "Der Server verstand die Anfrage wegen fehlerhafter Syntax nicht." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Methode unzulässig" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "Der Server verweigerte ein Laden der Seite.\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Interner Serverfehler" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "Diese Seite enthält fehlerhaften code oder der Server ist fehlkonfiguriert.\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2262 msgid "Method not supported" msgstr "Methode nicht unterstützt" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "Fehlerhafter Gateway" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "Der Proxy- oder Gatewayserver erhielt eine rehlerhafte Antwort.\n" "\n" "Versuchen Sie diese Seite später nochmal." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Dienst nicht verfügbar" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "Der Server kann die Anfrage aufgrund zu starker Auslastung nicht " "beantworten. Ebenfalls möglich ist, dass Sie falsche Proxyeinstellungen " "haben.\n" "\n" "Versuchen Sie es später oder ändern Sie Ihre Proxyeinstellungen." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Anfrage nicht fertiggestellt" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "Der Proxy- oder Gatewayserver erhielt inner nützlicher Frist keine Antwort " "eines hierarchisch höher gestellten Servers, der im URI angegeben wird (z.B. " "HTTP, FTP, LDAP) oder eines für einen anderen Dienst notwendigen Servers (z." "B. DNS)." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "Zugriff nicht erlaubt oder zu viele Verbindungen" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" "Dieser Server erlaubt keinen anonymen Benutzer oder die maximale " "Benutzerzahl ist erreicht.\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Zeitüberschreitung beim Laden der Seite" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Erwägen Sie, die Zeitüberschreitungslimite für dieses Projekt zu erhöhen. Es " "kann auch sein, dass der Server zu stark ausgelastet ist, um die Anfragen " "von gURLChecker zu beantworten, oder die Domäne existiert gar nicht.\n" "\n" "Versuchen Sie es später noch einmal." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "" "Ein neues gURLChecker Fenster konnte nicht geöffnet werden. Folgender Fehler " "trat auf:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Prüfung im Gang..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" #: ../src/application.c:3074 msgid "Manpage:" msgstr "Manpage:" #: ../src/application.c:3078 msgid "Code:" msgstr "Code:" #: ../src/application.c:3083 #, fuzzy msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi·Aihana·,·Japanisch\n" "Alexander·Hunziker·,·Deutsch\n" "Florent·Jugla·,·Esperanto\n" "Daniel·Pecos·,·Spanisch\n" "Gunner·Poulsen·,·Dänisch\n" "Emmanuel·Saracco·,·Französisch\n" "Angelo Theodorou , Italienisch\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker ist ein Programm zur Prüfung von Hyperlinks.\n" "Es arbeitet auf einer ganzen Domäne, auf einer einzelnen Seite oder auf " "einer Lesezeichendatei." #: ../src/application.c:3327 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung" #: ../src/application.c:3332 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung" #: ../src/application.c:3337 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung" #: ../src/application.c:3342 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Domäne übergehen" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Fügen Sie eine nicht zu prüfende Domäne hinzu" #: ../src/application.c:3372 #, fuzzy msgid "This domain name is not valid." msgstr "Die Domäne für diese E-Mail Adresse ist ungültig." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Verzeichnis übergehen" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Fügen Sie ein nicht zu prüfende Verzeichnis hinzu" #: ../src/application.c:3543 #, fuzzy msgid "Please, enter a string to search." msgstr "Bitte geben Sie ein Suchmuster ein." #: ../src/application.c:3566 #, fuzzy msgid "Please, check that there is no mismatch in your URL and try again." msgstr "" "Stellen Sie sicher, dass die URL korrekt ist und versuchen Sie es noch " "einmal." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "" #: ../src/application.c:3672 ../src/project.c:441 #, fuzzy msgid "[Local file] Page information" msgstr "Seiteninformation" #: ../src/application.c:3675 ../src/project.c:444 #, fuzzy msgid "[Web site] Page information" msgstr "Seiteninformation" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung aus." #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" #: ../src/application.c:3799 #, fuzzy msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "Die von Ihnen eingegebene Datei existiert nicht oder Sie haben nicht die " "erforderlichen Rechte dafür. Wählen Sie einen gültigen Pfad." #: ../src/application.c:3815 #, fuzzy msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Das Format der gewählten Datei ist nicht korrekt.\n" "Für den Moment kann gURLChecker nur mit dem XBEL Format umgehen." #: ../src/application.c:3822 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Das Format der gewählten Datei ist nicht korrekt.\n" "Für den Moment kann gURLChecker nur mit dem XBEL Format umgehen." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Das Format der gewählten Datei ist nicht korrekt.\n" "Für den Moment kann gURLChecker nur mit dem XBEL Format umgehen." #: ../src/application.c:3835 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Das Format der gewählten Datei ist nicht korrekt.\n" "Für den Moment kann gURLChecker nur mit dem XBEL Format umgehen." #: ../src/application.c:3852 #, fuzzy msgid "[Remote bookmarks] Page information" msgstr "Seiteninformation" #: ../src/application.c:3855 #, fuzzy msgid "[Local bookmarks] Page information" msgstr "Seiteninformation" #: ../src/application.c:4071 ../src/check.c:1556 msgid "Cleaning..." msgstr "Aufräumen..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:900 ../src/callbacks.c:918 #, fuzzy msgid "Please, select a project." msgstr "Bitte wählen Sie ein Projekt zum Öffnen." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "Sind Sie sicher, dass Sie dieses Projekt löschen möchten?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Hyperlink" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Lokaler Hyperlink" #: ../src/check.c:404 msgid "Local Image" msgstr "Lokales Bild" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Bild" #: ../src/check.c:410 msgid "Frame link" msgstr "Frame Link" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Unbekannter Typ" #: ../src/check.c:867 msgid "Retrieving source..." msgstr "Empfange Quelltext..." #: ../src/check.c:998 msgid "Continue" msgstr "Wiederaufnehmen" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Anhalten" #: ../src/check.c:1045 msgid "Checking file (FTP)..." msgstr "Prüfe Datei (FTP)..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Empfange Header..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Link wurde bereits geprüft..." #: ../src/check.c:1316 #, fuzzy, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "" "MX für die angegebene Domäne ist aktiv und akzeptiert Verbindungen auf Port " "25." #: ../src/check.c:1322 #, fuzzy msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "MX antwortet nicht oder die Domäne ist ungültig." #: ../src/check.c:1328 #, fuzzy msgid "The E-Mail's domain is not valid." msgstr "Die Domäne für diese E-Mail Adresse ist ungültig." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "" #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "" #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "" #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "" #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Schlafe für %u Sekunde(n)..." #: ../src/check.c:2119 #, fuzzy msgid "Checking E-Mail..." msgstr "Prüfe E-Mail..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Prüfe lokale Datei..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 msgid "Updating report..." msgstr "Aktualisiere Bericht..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Suche..." #: ../src/web_site.c:267 msgid "Updating link..." msgstr "Aktualisiere Link..." #: ../src/web_site.c:683 msgid "Updating branch..." msgstr "Aktualisiere Ast..." #: ../src/web_site.c:733 msgid "Updating all project..." msgstr "Aktualisiere ganzes Projekt..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Prüfe %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "" #: ../src/web_site.c:848 msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "Der Zugriff auf die angegebene URL ist eingeschränkt.\n" "Die Prüfung wurde abgebrochen." #: ../src/web_site.c:908 msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "Die angegebene URL antwortet nicht.\n" "Die Prüfung wurde abgebrochen." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "" #: ../src/bookmarks.c:311 #, fuzzy msgid "Save bookmarks file" msgstr "Lesezeichen speichern" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Beim Speichern der Lesezeichen trat ein Fehler auf.\n" "Es wurde nichts gespeichert." #: ../src/bookmarks.c:344 #, fuzzy msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Änderung der Lesezeichen werden gespeichert.\n" "Ihre alten Lesezeichen werden mit der Endung \".uc\" erhalten.\n" "\n" "Möchten Sie fortfahren?" #: ../src/bookmarks.c:379 #, fuzzy msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Beim Speichern der Lesezeichen trat ein Fehler auf.\n" "Es wurde nichts gespeichert." #: ../src/bookmarks.c:391 #, fuzzy msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Änderung der Lesezeichen werden gespeichert.\n" "Ihre alten Lesezeichen werden mit der Endung \".uc\" erhalten.\n" "\n" "Möchten Sie fortfahren?" #: ../src/bookmarks.c:1058 #, fuzzy msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Die angegebene XML Datei hat Syntaxfehler oder ihre Enkodierung kann nicht " "ermittelt werden.\n" "Die Prüfung wurde abgebrochen." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Die angegebene XML Datei ist leer.\n" #: ../src/main.c:126 msgid "Wrote by Emmanuel Saracco ." msgstr "" "Programmiert von Emmanuel Saracco ." #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Dies ist freie Software, beachten Sie die Quelltexte für weitere " "Bedingungen. Es wird NICHT für die fehlerfreie Funktionalität dieser " "Software garaniert, auch nicht für Marktgängigkeit oder spezielle Zwecke." #: ../src/main.c:136 #, fuzzy, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Verwendung: %s [OPTION] [URL]\n" "Ein Linkprüfer für Gnome 2.\n" "\n" " -h, --help\tDiese Hilfe anzeigen\n" " -V, --version\tVersionsnummer anzeigen\n" " -u, --http-user\tBenutzername für Authentifizierung -p, --http-passwd" "\tPasswort für Authentifizierung\n" "Bugs an melden\n" #: ../src/report.c:244 #, fuzzy msgid "Cannot execute xsltproc; the following error occured:" msgstr "" "Der Webbrowser konnte nicht gestartet werden, der folgene Fehler trat auf:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Geprüfte Links: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Geprüfte Links: %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Korrekte Links" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Unverfügbare Links" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Links mit fehlerhafter Syntax" #: ../src/report.c:499 msgid "Ignored links" msgstr "Ignorierte Links" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Links mit Zeitüberschreitung" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Verstrichene Zeit: %02d:%02d:%02d" #: ../src/utils.c:1671 #, fuzzy, c-format msgid "%lu bytes" msgstr "%u Bytes" #: ../src/utils.c:1673 #, fuzzy, c-format msgid "%.2f KB (%lu bytes)" msgstr "%.2f kB (%u Bytes)" #: ../src/utils.c:1676 #, fuzzy, c-format msgid "%.2f MB (%lu bytes)" msgstr "%.2f MB (%u bytes)" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "HTML Code einlesen..." #: ../src/html_parser.c:129 msgid "Parsing CSS code..." msgstr "CSS Code einlesen..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u Einträge gefunden" #: ../src/search.c:528 msgid "Search ended" msgstr "Suche beendet" #. status bar message #: ../src/project.c:361 #, c-format msgid "Loading [%s] project..." msgstr "Projekt [%s] wird geladen..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Erzeugt am %s\n" "Aktualisiert am %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Bitte geben Sie einen Titel für das Projekt ein." #: ../src/project.c:1391 #, fuzzy msgid "Save the current project ?" msgstr "Möchten Sie das aktuelle Projekt speichern?" #: ../src/project.c:1400 msgid "Saving project..." msgstr "Projekt wird gespeichert..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Status: %s\n" "Pfad: %s\n" "Pfad des Elternelements: %s\n" "Letztmals aktualisiert: %s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "Ein grafischer Linkprüfer" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gURLChecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Die Option `%s' ist mehrdeutig\n" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Die Option `--%s' erlaubt kein Argument\n" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Die Option `%c%s' erlaubt kein Argument\n" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Die Option `%s' benötigt ein Argument\n" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Unbekannte Option `--%s'\n" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Unbekannte Option `%c%s'\n" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Illegale Option -- %c\n" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ungültige Option -- %c\n" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Option benötigt ein Argument -- %c\n" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Die Option `-W %s' ist mehrdeutig\n" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: Die Option `-W %s' erlaubt kein Argument\n" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr "" #: ../ui/gurlchecker.glade.h:4 #, fuzzy msgid "CSS Extensions to check" msgstr "Bitte geben Sie ein Suchmuster ein." #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Inhaltsverwaltung" #: ../ui/gurlchecker.glade.h:6 #, fuzzy msgid "Documents to ignore" msgstr "Zurückzuweisende Dokumente" #: ../ui/gurlchecker.glade.h:7 #, fuzzy msgid "Expires :" msgstr "Typ:" #: ../ui/gurlchecker.glade.h:8 #, fuzzy msgid "Extensions to search for" msgstr "Bitte geben Sie ein Suchmuster ein." #: ../ui/gurlchecker.glade.h:9 #, fuzzy msgid "Files to check" msgstr "Zurückzuweisende Dokumente" #: ../ui/gurlchecker.glade.h:10 #, fuzzy msgid "HTML extensions to check" msgstr "Bitte geben Sie ein Suchmuster ein." #: ../ui/gurlchecker.glade.h:11 #, fuzzy msgid "Images to ignore" msgstr "Zurückzuweisende Bilder" #: ../ui/gurlchecker.glade.h:12 #, fuzzy msgid "Location :" msgstr "Pfad:" #: ../ui/gurlchecker.glade.h:13 msgid "Location:" msgstr "Pfad:" #: ../ui/gurlchecker.glade.h:14 msgid "Meta Tags" msgstr "Meta Tags" #: ../ui/gurlchecker.glade.h:15 #, fuzzy msgid "Modified :" msgstr "Verändert:" #: ../ui/gurlchecker.glade.h:16 #, fuzzy msgid "Name :" msgstr "Typ:" #: ../ui/gurlchecker.glade.h:17 #, fuzzy msgid "Options" msgstr "Pfad:" #: ../ui/gurlchecker.glade.h:18 #, fuzzy msgid "Page:" msgstr "Typ:" #: ../ui/gurlchecker.glade.h:19 #, fuzzy msgid "Path :" msgstr "Status:" #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Eigenschaften" #: ../ui/gurlchecker.glade.h:21 #, fuzzy msgid "Referrer :" msgstr "Referrer:" #: ../ui/gurlchecker.glade.h:22 #, fuzzy msgid "Security:" msgstr "Servertyp:" #: ../ui/gurlchecker.glade.h:23 #, fuzzy msgid "Server type :" msgstr "Servertyp:" #: ../ui/gurlchecker.glade.h:24 #, fuzzy msgid "Server:" msgstr "Servertyp:" #: ../ui/gurlchecker.glade.h:25 #, fuzzy msgid "Size :" msgstr "Grösse" #: ../ui/gurlchecker.glade.h:26 #, fuzzy msgid "Source :" msgstr "Quelle:" #: ../ui/gurlchecker.glade.h:27 #, fuzzy msgid "Status :" msgstr "Status:" #: ../ui/gurlchecker.glade.h:28 #, fuzzy msgid "Type :" msgstr "Typ:" #: ../ui/gurlchecker.glade.h:29 #, fuzzy msgid "Value :" msgstr "Quelle:" #: ../ui/gurlchecker.glade.h:30 #, fuzzy msgid "Warnings" msgstr "Pfad:" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Alle Links" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "Authentifizierung" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "Host blockieren nach" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Lesezeichendatei" #: ../ui/gurlchecker.glade.h:47 msgid "Branch update" msgstr "Ast aktualisieren" #: ../ui/gurlchecker.glade.h:48 #, fuzzy msgid "By protocol" msgstr "Protokoll" #: ../ui/gurlchecker.glade.h:49 #, fuzzy msgid "By status" msgstr "Status" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" #: ../ui/gurlchecker.glade.h:53 #, fuzzy msgid "CSV export" msgstr "Prüfungsbericht" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Abbrechen" #: ../ui/gurlchecker.glade.h:55 #, fuzzy msgid "Cancel check" msgstr "Abbrechen" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Gross-/Kleinschreibung beachten" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Prüfen" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "MX prüfen" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Prüfungsbericht" #: ../ui/gurlchecker.glade.h:61 #, fuzzy msgid "Check this option for links numbering" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:62 #, fuzzy msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:63 #, fuzzy msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Wählen Sie diese Option wenn Sie Seiten in anderen Verzeichnissen oder " "anderen Domänen nicht prüfen möchten." #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" #: ../ui/gurlchecker.glade.h:67 #, fuzzy msgid "Check this option to check FTP links" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:68 #, fuzzy msgid "Check this option to check MX of e-mails domains" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:69 #, fuzzy msgid "Check this option to check for e-mails syntax" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:70 #, fuzzy msgid "Check this option to check secure URLs too" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "" #: ../ui/gurlchecker.glade.h:76 #, fuzzy msgid "Check this option to enable virus scan of pages content" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:77 #, fuzzy msgid "Check this option to export links label" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:78 #, fuzzy msgid "Check this option to export links labels" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:79 #, fuzzy msgid "Check this option to export only external links" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" #: ../ui/gurlchecker.glade.h:82 #, fuzzy msgid "Check this option to retreive images content for local preview" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:83 #, fuzzy msgid "Check this option to scan only one page" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:84 #, fuzzy msgid "Choose a location" msgstr "Wählen Sie eine Lesezeichendatei" #: ../ui/gurlchecker.glade.h:85 #, fuzzy msgid "Clear export history" msgstr "Projektverlauf löschen" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Projektverlauf löschen" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Suchverlauf löschen" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Liste zusammenklappen" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Als Fehler werten" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "" #: ../ui/gurlchecker.glade.h:91 #, fuzzy msgid "Cookie" msgstr "Eigenschaften" #: ../ui/gurlchecker.glade.h:92 #, fuzzy msgid "Cookies" msgstr "Eigenschaften" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "DEBUG Modus" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "" #: ../ui/gurlchecker.glade.h:95 #, fuzzy msgid "Delete project" msgstr "Projekt _löschen" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Beschreibung:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Verzeichnisse" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Tooltips anzeigen" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "Seiteninhalt nicht downloaden (Prüfvorgang beschleunigen)" #: ../ui/gurlchecker.glade.h:102 msgid "Document" msgstr "Dokument" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Dokumente" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domänen" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Linkeigenschaften während des Prüfens verwerfen" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Dynamische Werte" #: ../ui/gurlchecker.glade.h:110 #, fuzzy msgid "E-Mails" msgstr "E-Mail" #: ../ui/gurlchecker.glade.h:111 #, fuzzy msgid "E-Mails syntax" msgstr "E-Mail Syntax" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Geben Sie eine URL zum Prüfen an" #: ../ui/gurlchecker.glade.h:113 #, fuzzy msgid "Enter a local file path or URL to check" msgstr "Geben Sie eine Datei zum Prüfen an" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Liste expandieren" #: ../ui/gurlchecker.glade.h:117 #, fuzzy msgid "Export" msgstr "Typ:" #: ../ui/gurlchecker.glade.h:118 #, fuzzy msgid "Files" msgstr "Filter" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filter" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" #: ../ui/gurlchecker.glade.h:122 msgid "Frame" msgstr "Frame" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Allgemein" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" #: ../ui/gurlchecker.glade.h:127 #, fuzzy msgid "History" msgstr "Verlauf" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "E-Mail Adresse" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Dieses Objekt überspringen" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Bildvorschau" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Bilder" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "" #: ../ui/gurlchecker.glade.h:137 msgid "Link update" msgstr "Link Aktualisierung" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Links" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "in Linknamen" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Lokale Datei" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Ort:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "" #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "In META Tags" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Maximal zu prüfende Linktiefe:" #: ../ui/gurlchecker.glade.h:146 #, fuzzy msgid "Network" msgstr "Netzwerk" #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Neu" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Neues Lesezeichenprojekt" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Neues gURLChecker Fenster" #: ../ui/gurlchecker.glade.h:150 msgid "New local file project" msgstr "Neues lokales Projekt" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Neues Projekt" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Neues Projekt" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Nur lokale Links prüfen" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Nur dieses Verzeichnis mit seinen Unterverzeichnissen prüfen" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "Nur lokale Links prüfen" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Öffnen" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Projekt öffnen" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Projekt öffnen" #: ../ui/gurlchecker.glade.h:160 #, fuzzy msgid "Page content" msgstr "in Seiteninhalt" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Seiteninformation" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Seiteneigenschaften" #: ../ui/gurlchecker.glade.h:163 msgid "Parent update" msgstr "Elternlink aktualisieren" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "" #: ../ui/gurlchecker.glade.h:165 #, fuzzy msgid "Personal data" msgstr "Persönliche Daten" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Projekteigenschaften" #: ../ui/gurlchecker.glade.h:167 #, fuzzy msgid "Prompt for authentication" msgstr "Authentifizierung" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protokolle" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "" #: ../ui/gurlchecker.glade.h:170 #, fuzzy msgid "Remove all 404 links" msgstr "Alle Links aktualisieren..." #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Inhalt von Nicht-HTML Dateien beziehen" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Bilder laden" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Speichern" #: ../ui/gurlchecker.glade.h:175 #, fuzzy msgid "Save bookmarks" msgstr "Lesezeichen speichern" #: ../ui/gurlchecker.glade.h:176 #, fuzzy msgid "Save report in..." msgstr "Aktualisiere Bericht..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Suche im Gang..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Suchen..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Ähnliche Links" #: ../ui/gurlchecker.glade.h:182 #, fuzzy msgid "Status code" msgstr "Status" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "" #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "" #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Zeitverzögerung zwischen zwei\n" "Prüfungen in Sekunden:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Zeitüberschreitung in Sekunden:" #: ../ui/gurlchecker.glade.h:190 msgid "Timeout:" msgstr "Zeitüberschreitung:" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Titel:" #: ../ui/gurlchecker.glade.h:193 #, fuzzy msgid "Uncheck this option to check external links too" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:194 #, fuzzy msgid "Uncheck this option to check external pages too" msgstr "" "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " "interessiert sind." #: ../ui/gurlchecker.glade.h:195 #, fuzzy msgid "Update all children for this link" msgstr "Alle Kinderlinks aktualisieren" #: ../ui/gurlchecker.glade.h:196 #, fuzzy msgid "Update all links..." msgstr "Aktualisiere Link..." #: ../ui/gurlchecker.glade.h:197 msgid "Update main page..." msgstr "Hauptseite aktualisieren..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "Seiten mit diesem Link aktualisieren" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "Diesen Link aktualisieren" #: ../ui/gurlchecker.glade.h:200 msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Beenden der Prüfung.\n" "\n" "Bitte warten..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "Benutze passive mode" #: ../ui/gurlchecker.glade.h:205 #, fuzzy msgid "View all link locations" msgstr "Jedes Auftreten dieses Links auflisten" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "In Browser laden" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Mutterseite in Browser laden" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "" #: ../ui/gurlchecker.glade.h:212 #, fuzzy msgid "W3C validation" msgstr "Keine gültige Information" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "Warten" #: ../ui/gurlchecker.glade.h:214 #, fuzzy msgid "Warnings" msgstr "Pfad:" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Website" #: ../ui/gurlchecker.glade.h:216 msgid "When a cookie is added" msgstr "" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Mit SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Ansicht" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Bearbeiten" #: ../ui/gurlchecker.glade.h:223 #, fuzzy msgid "_File" msgstr "Filter" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Projekt" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "Versuchen" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "gURLChecker Einstellungen" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "Sekunde(n) zwischen den Prüfungen." #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "Sekunde(n)." #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "Wählen Sie eine Lesezeichendatei zur Prüfung" #, fuzzy #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker hat die Prüfung abgebrochen, weil in Ihrem Arbeitsverzeichnis " #~ "zu wenig Platz verfügbar ist.\n" #~ "\n" #~ "gURLChecker hat eine Sicherheitsmarge für die Abschätzung des freien " #~ "Speicherplatzes eingerechnet." #, fuzzy #~ msgid "Flash option: check it to check only one page" #~ msgstr "" #~ "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " #~ "interessiert sind." #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Nur dieses Verzeichnis mit seinen Unterverzeichnissen prüfen" #, fuzzy #~ msgid "Please, check URL syntax and try again." #~ msgstr "" #~ "Stellen Sie sicher, dass die URL korrekt ist und versuchen Sie es noch " #~ "einmal." #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "HTTPS" #~ msgstr "HTTPS" #~ msgid "Choose a bookmarks file" #~ msgstr "Wählen Sie eine Lesezeichendatei" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "Wählen Sie eine Lesezeichendatei" #, fuzzy #~ msgid "Check this options to check external pages too" #~ msgstr "" #~ "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " #~ "interessiert sind." #, fuzzy #~ msgid "Save links in..." #~ msgstr "Aktualisiere Bericht..." #~ msgid "Delete" #~ msgstr "Löschen" #~ msgid "Save _project" #~ msgstr "Projekt _speichern" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "gURLChecker Einstellungen" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "Seiteneigenschaften" #, fuzzy #~ msgid "" #~ "Check this option to check links that point on another host that the one " #~ "specified in the project URL" #~ msgstr "" #~ "Wählen Sie diese Option wenn Sie Seiten in anderen Verzeichnissen nicht " #~ "prüfen möchten." #, fuzzy #~ msgid "" #~ "Check this option to check only one page and don't be interested on pages " #~ "content" #~ msgstr "" #~ "Wählen Sie diese Option, wenn Sie nur eine Seite prüfen wollen und nicht " #~ "am Inhalt der Seiten interessiert sind." #, fuzzy #~ msgid "" #~ "Check this options to check pages under other repositories thant the one " #~ "specified for the project URL" #~ msgstr "" #~ "Wählen Sie diese Option wenn Sie Seiten in anderen Verzeichnissen oder " #~ "anderen Domänen nicht prüfen möchten." #, fuzzy #~ msgid "Check this option is you want to export links labels" #~ msgstr "" #~ "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " #~ "interessiert sind." #, fuzzy #~ msgid "Check this option to numbered lines in the export" #~ msgstr "" #~ "Wählen Sie diese Option falls Sie nicht am Inhalt der Lesezeichenseiten " #~ "interessiert sind." #, fuzzy #~ msgid "Actions" #~ msgstr "Ort:" #, fuzzy #~ msgid "Updates" #~ msgstr "Diesen Link aktualisieren" #, fuzzy #~ msgid "link" #~ msgstr "Links" #, fuzzy #~ msgid "Parent" #~ msgstr "Elternlink aktualisieren" #, fuzzy #~ msgid "Branch" #~ msgstr "Ast aktualisieren" #, fuzzy #~ msgid "All this link locations" #~ msgstr "Jedes Auftreten dieses Links auflisten" #, fuzzy #~ msgid "This page online" #~ msgstr "Mutterseite in Browser laden" #, fuzzy #~ msgid "Parent page online" #~ msgstr "Mutterseite in Browser laden" #, fuzzy #~ msgid "Page source" #~ msgstr "Quelltext betrachten" #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "Der Server weigerte sich, die Seite zu senden.\n" #~ "Gewisse Webserver lassen die Methode HEAD für gewisse Dateien nicht zu... " #~ "und gURLChecker muss diese HEAD Methode senden :-(\n" #~ "\n" #~ "Versuchen Sie es später, oder sperren Sie diese Domäne in den " #~ "Einstellungen" #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "Gewisse Webserver lassen die Methode HEAD für gewisse Dateien nicht zu..." #~ "und gURLChecker muss diese HEAD Methode senden :-(\n" #~ "\n" #~ "Versuchen Sie es später, oder sperren Sie diese Domäne in den " #~ "Einstellungen" #, fuzzy #~ msgid "gURLChecker project page" #~ msgstr "gURLChecker" #, fuzzy #~ msgid "Graphic view" #~ msgstr "Visuelle Gestaltung:" #, fuzzy #~ msgid "Pages relations" #~ msgstr "Seiteninformation" #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "Bitte geben Sie eine Domäne ein." #~ msgid "Please, enter a directory name." #~ msgstr "Bitte geben Sie ein Verzeichnis an." #~ msgid "The domain you entered seems not to be valid." #~ msgstr "Die von Ihnen eingegebene Domäne scheint fehlerhaft zu sein." #~ msgid "Please, select a project to delete." #~ msgstr "Bitte wählen Sie das zu löschende Projekt." #~ msgid "Check email MX" #~ msgstr "E-Mail MX prüfen" #~ msgid "Email" #~ msgstr "E-Mail" #~ msgid "Emails" #~ msgstr "in E-Mails" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "E-Mail MX prüfen" #, fuzzy #~ msgid "Authentication" #~ msgstr "Authentifizierung" #~ msgid "Check" #~ msgstr "Prüfung" #, fuzzy #~ msgid "Cookies" #~ msgstr "Eigenschaften" #~ msgid "Debug" #~ msgstr "Fehlerbehebung" #~ msgid "MAIN URL" #~ msgstr "Primäre URL" #~ msgid "*" #~ msgstr "*" gurlchecker-0.13.1/po/Makefile.in.in0000644000175000017500000001537711530645257014130 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gurlchecker-0.13.1/po/es.po0000644000175000017500000016210111407055351012402 00000000000000# gURLChecker es.po # Copyright (C) 2002, 2003 Emmanuel Saracco . # This file is distributed under the same license as the gURLChecker package. # # Daniel Pecos , 2003. # msgid "" msgstr "" "Project-Id-Version: 0.7.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2004-03-09 00:39+0100\n" "Last-Translator: Daniel Pecos \n" "Language-Team: Spanish/Spain \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Identificador" #: ../src/application.c:118 msgid "Type" msgstr "Tipo" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 #, fuzzy msgid "Custom action" msgstr "Elige un fichero de marcadores" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Etiqueta" #: ../src/application.c:318 #, fuzzy msgid "Date" msgstr "Borrar" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Nombre" #: ../src/application.c:529 msgid "Content" msgstr "Contenido" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "" #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "" #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "" #: ../src/application.c:1536 msgid "Missing URL" msgstr "" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "" #: ../src/application.c:1577 #, fuzzy msgid "Unknown" msgstr "Tipo desconocido" #: ../src/application.c:1582 #, fuzzy msgid "(gURLChecker internals)" msgstr "Preferencias de gURLChecker" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "" #: ../src/application.c:1592 msgid "Not cached" msgstr "" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 #, fuzzy msgid "E-Mail" msgstr "Email" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 #, fuzzy msgid "Please, select a item." msgstr "Por favor, selecciona un elemento primero." #: ../src/application.c:1906 #, fuzzy msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "No se pudo lanzar tu navegador web; ocurrió el siguiente error:" #: ../src/application.c:1956 ../src/application.c:1988 #, fuzzy msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "¡El fichero está vacío o no existe en el directorio de caché!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Ver fuente" #: ../src/application.c:2029 msgid "Redirect" msgstr "" #: ../src/application.c:2030 #, fuzzy msgid "Edit" msgstr "_Editar" #: ../src/application.c:2031 msgid "Create target" msgstr "" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Servidor inalcanzable" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "La máquina remota no responde...\n" "Quizás deberías cambiar el tiempo de espera en las preferencias de " "gURLChecker, o quizás realmente no esté en marcha.\n" "\n" "Inténtalo más tarde." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "FILE:// protocol" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Protocolo de fichero detectado. Tú me has pedido que te avise cuando " "encuentre el protocolo \"FILE://\" en un enlace." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Página disponible" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Sin problemas con esta página.\n" "El servidor está en marcha y el documento puede ser cargado sin ningún " "problema." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Página no encontrada" #: ../src/application.c:2123 ../src/application.c:2240 #, fuzzy msgid "The page does not exist on the server." msgstr "La página ya no está disponible en el servidor." #: ../src/application.c:2129 #, fuzzy msgid "Bad E-Mail link" msgstr "Enlace de email incorrecto" #: ../src/application.c:2130 #, fuzzy msgid "The E-Mail specified in the link is not well formatted." msgstr "" "La dirección de email especificada en el enlace no esta bien construida." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problema con MX" #: ../src/application.c:2137 #, fuzzy msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "El MX del dominio especificado para esta dirección de email no es válida o " "el propio dominio no es válido." #: ../src/application.c:2144 #, fuzzy msgid "E-Mail link ok" msgstr "Enlace de email ok" #: ../src/application.c:2144 #, fuzzy msgid "No problem with this E-Mail." msgstr "Sin problemas con esta dirección de email." #: ../src/application.c:2150 msgid "Item ignored" msgstr "Elemento ignorado" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "" "Escogiste ignorar este elemento mientras gURLChecker estaba comprobándolo." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Enlace mal construido" #: ../src/application.c:2159 #, fuzzy msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "El enlace HTML está mal construido.\n" "\n" "¿Quizás falte el atributo SRC o el enlace relativo no sea correcto?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Información no válida" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker no puede interpretar el código de estado enviado por la máquina " "remota.\n" "Por favor, reporta el valor del campo \"Estado\" de la cabecera al autor de " "gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "Página trasladada permanentemente" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "No hay problemas reales con esta página.\n" "El recurso requerido simplemente se le ha asignado una nueva URI permanente." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "Página trasladada temporalmente" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Acceso restringido" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Esta página necesita autenticación para ser vista." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Acceso no permitido" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Página disponible, pero sin contenido" #: ../src/application.c:2225 #, fuzzy msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Sin problemas con esta página, pero no tiene contenido...\n" "\n" "Pruéba más tarde." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "URL mal construida" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "La petición no pudo ser entendida por el servidor debido a una sintaxis mal " "construida." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Método no permitido" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "La máquina remota ha rehusado servirnos la página.\n" "\n" "Inténtalo más tarde." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Error interno del servidor" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "La página contiene código erróneo, o el servidor está mal configurado.\n" "\n" "Inténtalo más tarde." #: ../src/application.c:2262 #, fuzzy msgid "Method not supported" msgstr "Método no permitido" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "Pasarela incorrecta" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" " El servidor, actuando como gateway o proxy, recibió una respuesta inválida " "del servidor que accedió al intentar completar la petición.\n" "\n" "Prueba a comprobar esta página más tarde." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Servicio no disponible" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "El servidor en estos momentos es incapaz de responder a la petición debido a " "una sobrecarga temporal o a mantenimiento del servidor. Puede ser que estés " "usando un proxy que no puede alcanzar a la máquina.\n" "\n" "Pruébalo más tarde, o cambia la configuración del proxy." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Petición no completada" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" " El servidor, actuando como gateway o proxy, no recibió respuesta dentro de " "tiempo del servidor especificado por la URI (p.ej. HTTP, FTP, LDAP) o de " "algún otro servidor auxiliar (p.ej. DNS) al que necesitó acceder al intentar " "completar la petición." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Sobrepasando tiempo de espera en la petición de la página." #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Quizás deberías cambiar el tiempo de espera en gURLChecker. Quizás la " "máquina remota está demasiado ocupada para responder la petición de " "gURLChecker, o quizás la máquina remota no exista realmente.\n" "\n" "Inténtalo de nuevo más tarde." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "" "No se pudo lanzar una nueva instancia de gURLChecker; ocurrió el siguiente " "error:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Comprobación en curso..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" #: ../src/application.c:3074 msgid "Manpage:" msgstr "" #: ../src/application.c:3078 msgid "Code:" msgstr "" #: ../src/application.c:3083 #, fuzzy msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana , Japonés\n" "Alexander·Hunziker·,·Alemán\n" "Florent Jugla , Esperanto\n" "Daniel Pecos , Castellano\n" "Gunner Poulsen , Danés\n" "Emmanuel Saracco , Francés\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker es un comprobador gráfico de enlaces web.\n" "Puede trabajar con un sitio completo, una única página local o un fichero de " "marcadores de un navegador" #: ../src/application.c:3327 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "Elige un fichero de marcadores a comprobar" #: ../src/application.c:3332 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "Elige un fichero de marcadores a comprobar" #: ../src/application.c:3337 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "Elige un fichero de marcadores a comprobar" #: ../src/application.c:3342 #, fuzzy msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "Elige un fichero de marcadores a comprobar" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nuevo dominio a rechazar" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Añade un dominio a rechazar" #: ../src/application.c:3372 #, fuzzy msgid "This domain name is not valid." msgstr "El dominio de este email no es válido." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Nuevo directorio a rechazar" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Añade un directorio a rechazar" #: ../src/application.c:3543 #, fuzzy msgid "Please, enter a string to search." msgstr "Por favor, introduce un cadena a buscar" #: ../src/application.c:3566 #, fuzzy msgid "Please, check that there is no mismatch in your URL and try again." msgstr "" "Por favor, comprueba que introdujiste la URL correctamente y inténtalo otra " "vez." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "" #: ../src/application.c:3672 ../src/project.c:441 #, fuzzy msgid "[Local file] Page information" msgstr "Información sobre la página" #: ../src/application.c:3675 ../src/project.c:444 #, fuzzy msgid "[Web site] Page information" msgstr "Información sobre la página" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Por favor elige un fichero de marcadores a comprobar" #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" #: ../src/application.c:3799 #, fuzzy msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "El fichero que introdujiste no es correcto o no tienes los permisos " "apropiados. Por favor escoge un fichero de marcas válido." #: ../src/application.c:3815 #, fuzzy msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "El formato de el fichero seleccionado no es correcto.\n" "Por el momento, gURLChecker puede tratar solo con el formato XBEL." #: ../src/application.c:3822 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "El formato de el fichero seleccionado no es correcto.\n" "Por el momento, gURLChecker puede tratar solo con el formato XBEL." #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "El formato de el fichero seleccionado no es correcto.\n" "Por el momento, gURLChecker puede tratar solo con el formato XBEL." #: ../src/application.c:3835 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "El formato de el fichero seleccionado no es correcto.\n" "Por el momento, gURLChecker puede tratar solo con el formato XBEL." #: ../src/application.c:3852 #, fuzzy msgid "[Remote bookmarks] Page information" msgstr "Información sobre la página" #: ../src/application.c:3855 #, fuzzy msgid "[Local bookmarks] Page information" msgstr "Información sobre la página" #: ../src/application.c:4071 ../src/check.c:1556 #, fuzzy msgid "Cleaning..." msgstr "Terminando..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" #: ../src/callbacks.c:900 ../src/callbacks.c:918 #, fuzzy msgid "Please, select a project." msgstr "Por favor, selecciona un proyecto a abrir." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "¿Seguro que quieres eliminar el proyecto?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Enlace de hypertexto" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Enlace de hypertexto local" #: ../src/check.c:404 msgid "Local Image" msgstr "Imagen local" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Imagen" #: ../src/check.c:410 msgid "Frame link" msgstr "Enlace a frame" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Tipo desconocido" #: ../src/check.c:867 #, fuzzy msgid "Retrieving source..." msgstr "Obteniendo cabecera..." #: ../src/check.c:998 msgid "Continue" msgstr "Continuar" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Suspender" #: ../src/check.c:1045 #, fuzzy msgid "Checking file (FTP)..." msgstr "Comprobando fichero local..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Obteniendo cabecera..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Elemento ya comprobado..." #: ../src/check.c:1316 #, fuzzy, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "" "Máquina MX %s para el dominio especificado está en marcha y escucha en el " "puerto 25" #: ../src/check.c:1322 #, fuzzy msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "Máquina MX %s no responde o el dominio de este email no es válido." #: ../src/check.c:1328 #, fuzzy msgid "The E-Mail's domain is not valid." msgstr "El dominio de este email no es válido." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "" #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "" #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "" #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "" #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Durmiendo %u segundo(s)..." #: ../src/check.c:2119 #, fuzzy msgid "Checking E-Mail..." msgstr "Comprobando email..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Comprobando fichero local..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 #, fuzzy msgid "Updating report..." msgstr "Obteniendo cabecera..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Buscando..." #: ../src/web_site.c:267 #, fuzzy msgid "Updating link..." msgstr "Reescanear enlace..." #: ../src/web_site.c:683 #, fuzzy msgid "Updating branch..." msgstr "Obteniendo cabecera..." #: ../src/web_site.c:733 #, fuzzy msgid "Updating all project..." msgstr "Cargando..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Comprobando %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "" #: ../src/web_site.c:848 #, fuzzy msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "La URL especificada para el proyecto no responde.\n" "La comprobación ha sido cancelada." #: ../src/web_site.c:908 #, fuzzy msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "La URL especificada para el proyecto no responde.\n" "La comprobación ha sido cancelada." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "" #: ../src/bookmarks.c:311 #, fuzzy msgid "Save bookmarks file" msgstr "Guardar _marcadores" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "" #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Ocurrió un error guardando el fichero de marcadores.\n" "No se ha guardado nada." #: ../src/bookmarks.c:344 #, fuzzy msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Las modificaciones en los marcadores serán guardadas.\n" "Tu fichero viejo de marcadores será renombrado con extension \".uc\".\n" "\n" "¿Quieres guardar?" #: ../src/bookmarks.c:379 #, fuzzy msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "Ocurrió un error guardando el fichero de marcadores.\n" "No se ha guardado nada." #: ../src/bookmarks.c:391 #, fuzzy msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Las modificaciones en los marcadores serán guardadas.\n" "Tu fichero viejo de marcadores será renombrado con extension \".uc\".\n" "\n" "¿Quieres guardar?" #: ../src/bookmarks.c:1058 #, fuzzy msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "El fichero XML dado no está bien construido o su codificación no puede ser " "encontrada.\n" "La comprobación ha sido abortada." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "El fichero XML dado está vacío.\n" #: ../src/main.c:126 #, fuzzy msgid "Wrote by Emmanuel Saracco ." msgstr "" "Escrito por Emmanuel Saracco " #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Esto es software libre; mira las fuentes para condiciones de copia. NO hay " "garantía; ni siquiera para COMERCIALIZACIÓN o PARA OTRO FIN PARTICULAR." #: ../src/main.c:136 #, fuzzy, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Uso: %s [OPCIÓN] [URL]\n" "Comprobador de enlaces web para Gnome 2\n" "\n" "-h, --help\tmuestra esta ayuda\n" "-V, --version\tmuestra %s versión\n" "\n" "Reporte de fallos a \n" #: ../src/report.c:244 #, fuzzy msgid "Cannot execute xsltproc; the following error occured:" msgstr "No se pudo lanzar tu navegador web; ocurrió el siguiente error:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Enlaces comprobados: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Enlaces comprobados: %d %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Enlaces correctos" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Enlaces incorrectos" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Enlaces mal construidos" #: ../src/report.c:499 msgid "Ignored links" msgstr "Enlaces ignorados" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Tiempos de espera vencidos" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Tiempo transcurrido: %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Parseando código HTML..." #: ../src/html_parser.c:129 #, fuzzy msgid "Parsing CSS code..." msgstr "Parseando código HTML..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u elemento(s) encontrados" #: ../src/search.c:528 msgid "Search ended" msgstr "Búsqueda finalizada" #. status bar message #: ../src/project.c:361 #, fuzzy, c-format msgid "Loading [%s] project..." msgstr "Cargando..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Creado en %s\n" "Actualizado en %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Por favor, introduce un título para el proyecto actual." #: ../src/project.c:1391 #, fuzzy msgid "Save the current project ?" msgstr "¿Guardar el proyecto actual?" #: ../src/project.c:1400 #, fuzzy msgid "Saving project..." msgstr "Cargando..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Estado: %s\n" "Dirección:·%s\n" "Dirección del padre:·%s\n" "Última modificación:·%s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gurlchecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr "" #: ../ui/gurlchecker.glade.h:4 #, fuzzy msgid "CSS Extensions to check" msgstr "Por favor, introduce un cadena a buscar" #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Administración de contenido" #: ../ui/gurlchecker.glade.h:6 #, fuzzy msgid "Documents to ignore" msgstr "Documentos a rechazar" #: ../ui/gurlchecker.glade.h:7 #, fuzzy msgid "Expires :" msgstr "HTTP" #: ../ui/gurlchecker.glade.h:8 #, fuzzy msgid "Extensions to search for" msgstr "Por favor, introduce un cadena a buscar" #: ../ui/gurlchecker.glade.h:9 #, fuzzy msgid "Files to check" msgstr "Documentos a rechazar" #: ../ui/gurlchecker.glade.h:10 #, fuzzy msgid "HTML extensions to check" msgstr "Por favor, introduce un cadena a buscar" #: ../ui/gurlchecker.glade.h:11 #, fuzzy msgid "Images to ignore" msgstr "Imágenes a rechazar" #: ../ui/gurlchecker.glade.h:12 #, fuzzy msgid "Location :" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:13 #, fuzzy msgid "Location:" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:14 #, fuzzy msgid "Meta Tags" msgstr "Cabecera " #: ../ui/gurlchecker.glade.h:15 #, fuzzy msgid "Modified :" msgstr "Cabecera " #: ../ui/gurlchecker.glade.h:16 #, fuzzy msgid "Name :" msgstr "HTTP" #: ../ui/gurlchecker.glade.h:17 #, fuzzy msgid "Options" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:18 #, fuzzy msgid "Page:" msgstr "HTTP" #: ../ui/gurlchecker.glade.h:19 #, fuzzy msgid "Path :" msgstr "Cabecera " #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:21 #, fuzzy msgid "Referrer :" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:22 #, fuzzy msgid "Security:" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:23 #, fuzzy msgid "Server type :" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:24 #, fuzzy msgid "Server:" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:25 #, fuzzy msgid "Size :" msgstr "Cabecera " #: ../ui/gurlchecker.glade.h:26 #, fuzzy msgid "Source :" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:27 #, fuzzy msgid "Status :" msgstr "Cabecera " #: ../ui/gurlchecker.glade.h:28 #, fuzzy msgid "Type :" msgstr "HTTP" #: ../ui/gurlchecker.glade.h:29 #, fuzzy msgid "Value :" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:30 #, fuzzy msgid "Warnings" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Todos los enlaces" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Fichero de marcadores" #: ../ui/gurlchecker.glade.h:47 #, fuzzy msgid "Branch update" msgstr "Padre:" #: ../ui/gurlchecker.glade.h:48 #, fuzzy msgid "By protocol" msgstr "Protocolos" #: ../ui/gurlchecker.glade.h:49 #, fuzzy msgid "By status" msgstr "Estado" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" #: ../ui/gurlchecker.glade.h:53 #, fuzzy msgid "CSV export" msgstr "Comprueba el reporte" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Cancelar" #: ../ui/gurlchecker.glade.h:55 #, fuzzy msgid "Cancel check" msgstr "Cancelar" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Sensible a mayúsculas" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Comprobar" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Comprobar MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Comprueba el reporte" #: ../ui/gurlchecker.glade.h:61 #, fuzzy msgid "Check this option for links numbering" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:62 #, fuzzy msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:63 #, fuzzy msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Selecciona esta opcion si no quieres comprobar páginas en otros " "repositoriosa parte del especificado por la URL del proyecto." #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" #: ../ui/gurlchecker.glade.h:67 #, fuzzy msgid "Check this option to check FTP links" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:68 #, fuzzy msgid "Check this option to check MX of e-mails domains" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:69 #, fuzzy msgid "Check this option to check for e-mails syntax" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:70 #, fuzzy msgid "Check this option to check secure URLs too" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "" #: ../ui/gurlchecker.glade.h:76 #, fuzzy msgid "Check this option to enable virus scan of pages content" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:77 #, fuzzy msgid "Check this option to export links label" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:78 #, fuzzy msgid "Check this option to export links labels" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:79 #, fuzzy msgid "Check this option to export only external links" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" #: ../ui/gurlchecker.glade.h:82 #, fuzzy msgid "Check this option to retreive images content for local preview" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:83 #, fuzzy msgid "Check this option to scan only one page" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:84 #, fuzzy msgid "Choose a location" msgstr "Elige un fichero de marcadores" #: ../ui/gurlchecker.glade.h:85 #, fuzzy msgid "Clear export history" msgstr "Limpiar historial del proyecto" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Limpiar historial del proyecto" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Limpiar historial de la búsqueda" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Colapsar toda la lista" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Considerar como error" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "" #: ../ui/gurlchecker.glade.h:91 #, fuzzy msgid "Cookie" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:92 #, fuzzy msgid "Cookies" msgstr "Propiedades" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "Modo DEPURACIÓN" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "" #: ../ui/gurlchecker.glade.h:95 #, fuzzy msgid "Delete project" msgstr "Nuevo proyecto" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Descripción:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Directorios" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Mostrar sugerencias" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "No obtener el contenido de la página (acelera la comprobación)" #: ../ui/gurlchecker.glade.h:102 #, fuzzy msgid "Document" msgstr "Documentos" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Documentos" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Dominios" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Volcar propiedades de enlace durante la comprobación" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Valores dinámicos" #: ../ui/gurlchecker.glade.h:110 #, fuzzy msgid "E-Mails" msgstr "Email" #: ../ui/gurlchecker.glade.h:111 #, fuzzy msgid "E-Mails syntax" msgstr "Sintaxis de email" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Introduce una URL a comprobar" #: ../ui/gurlchecker.glade.h:113 #, fuzzy msgid "Enter a local file path or URL to check" msgstr "Introduce una URL a comprobar" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Expandir toda la lista" #: ../ui/gurlchecker.glade.h:117 #, fuzzy msgid "Export" msgstr "HTTP" #: ../ui/gurlchecker.glade.h:118 #, fuzzy msgid "Files" msgstr "Filtros" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtros" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" #: ../ui/gurlchecker.glade.h:122 #, fuzzy msgid "Frame" msgstr "Enlace a frame" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "General" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" #: ../ui/gurlchecker.glade.h:127 #, fuzzy msgid "History" msgstr "Historia" #: ../ui/gurlchecker.glade.h:128 #, fuzzy msgid "IP address" msgstr "Dirección de email" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignorar este elemento" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Previsualización de imágenes" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Imágenes" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "" #: ../ui/gurlchecker.glade.h:137 #, fuzzy msgid "Link update" msgstr "Nombres de enlace" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Enlaces" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Nombres de enlace" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Ficheros locales" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Dirección:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "" #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "Contenido de marcas META" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Máximo número de niveles de profundidad a comprobar:" #: ../ui/gurlchecker.glade.h:146 #, fuzzy msgid "Network" msgstr "Red " #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Nuevo" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nuevo proyecto de marcadores" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nueva instancia" #: ../ui/gurlchecker.glade.h:150 #, fuzzy msgid "New local file project" msgstr "Nuevo proyecto web" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nuevo proyecto" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nuevo proyecto web" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Solo comprobar enlaces locales" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Comprobar solo este directorio y sus subdirectorios" #: ../ui/gurlchecker.glade.h:156 #, fuzzy msgid "Only external links" msgstr "Solo comprobar enlaces locales" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Abrir" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Abrir un proyecto" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Abrir proyecto" #: ../ui/gurlchecker.glade.h:160 #, fuzzy msgid "Page content" msgstr "Contenido de la página" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Propiedades de página" #: ../ui/gurlchecker.glade.h:163 #, fuzzy msgid "Parent update" msgstr "Padre:" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "" #: ../ui/gurlchecker.glade.h:165 #, fuzzy msgid "Personal data" msgstr "Datos personales" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Propiedades de proyecto" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protocolos" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "" #: ../ui/gurlchecker.glade.h:170 #, fuzzy msgid "Remove all 404 links" msgstr "Reescanear enlace..." #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Obtener contenido de ficheros no HTML" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Obtener contenido de imágenes" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Guardar" #: ../ui/gurlchecker.glade.h:175 #, fuzzy msgid "Save bookmarks" msgstr "Guardar _marcadores" #: ../ui/gurlchecker.glade.h:176 #, fuzzy msgid "Save report in..." msgstr "Obteniendo cabecera..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Búsqueda en curso..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Buscar..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Localizaciones de enlace similares" #: ../ui/gurlchecker.glade.h:182 #, fuzzy msgid "Status code" msgstr "Estado" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "" #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "" #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Tiempo a esperar entre dos comprobaciones, \n" "en segundos:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Tiempo de espera en segundos:" #: ../ui/gurlchecker.glade.h:190 #, fuzzy msgid "Timeout:" msgstr "Tiempos de espera vencidos" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Título:" #: ../ui/gurlchecker.glade.h:193 #, fuzzy msgid "Uncheck this option to check external links too" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:194 #, fuzzy msgid "Uncheck this option to check external pages too" msgstr "" "Selecciona esta opción si no estás interesado en el contenido de las páginas " "de los marcadores." #: ../ui/gurlchecker.glade.h:195 msgid "Update all children for this link" msgstr "" #: ../ui/gurlchecker.glade.h:196 #, fuzzy msgid "Update all links..." msgstr "Reescanear enlace..." #: ../ui/gurlchecker.glade.h:197 #, fuzzy msgid "Update main page..." msgstr "Reescanear enlace..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "" #: ../ui/gurlchecker.glade.h:200 #, fuzzy msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Cargando elementos del proyecto.\n" "\n" "Por favor espera..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "" #: ../ui/gurlchecker.glade.h:205 #, fuzzy msgid "View all link locations" msgstr "Ver todos las localizaciones de este enlace" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Ver conectado" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Ver página padre conectado" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "" #: ../ui/gurlchecker.glade.h:212 #, fuzzy msgid "W3C validation" msgstr "Información no válida" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "" #: ../ui/gurlchecker.glade.h:214 #, fuzzy msgid "Warnings" msgstr "Información sobre la página" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Sitio web" #: ../ui/gurlchecker.glade.h:216 msgid "When a cookie is added" msgstr "" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Con SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Mostrar" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Editar" #: ../ui/gurlchecker.glade.h:223 #, fuzzy msgid "_File" msgstr "Filtros" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Proyecto" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "Preferencias de gURLChecker" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "" #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "" #, fuzzy #~ msgid "" #~ "You can select a local or remote bookmarks file.\n" #~ "As this version of gurlchecker have no sqlite3 support, the file have to " #~ "be in XBEL format" #~ msgstr "Elige un fichero de marcadores a comprobar" #, fuzzy #~ msgid "" #~ "gURLChecker has cancelled the check because you do not have enough space " #~ "on your working directory partition.\n" #~ "gURLChecker has taken a security margin to estimate free space." #~ msgstr "" #~ "gURLChecker ha cancelado la comprobación porque no tienes suficiente " #~ "espacio en tu directorio de trabajo.\n" #~ "\n" #~ "gURLChecker ha cogido un margen de seguridad para estimar el espacio " #~ "libre." #, fuzzy #~ msgid "Flash option: check it to check only one page" #~ msgstr "" #~ "Selecciona esta opción si no estás interesado en el contenido de las " #~ "páginas de los marcadores." #, fuzzy #~ msgid "Only check given directory and its subdirectories" #~ msgstr "Comprobar solo este directorio y sus subdirectorios" #, fuzzy #~ msgid "Please, check URL syntax and try again." #~ msgstr "" #~ "Por favor, comprueba que introdujiste la URL correctamente y inténtalo " #~ "otra vez." #~ msgid "FTP" #~ msgstr "FTP" #~ msgid "HTTP" #~ msgstr "HTTP" #, fuzzy #~ msgid "HTTPS" #~ msgstr "HTTP" #~ msgid "Choose a bookmarks file" #~ msgstr "Elige un fichero de marcadores" #, fuzzy #~ msgid "Choose a export path" #~ msgstr "Elige un fichero de marcadores" #, fuzzy #~ msgid "Check this options to check external pages too" #~ msgstr "" #~ "Selecciona esta opción si no estás interesado en el contenido de las " #~ "páginas de los marcadores." #, fuzzy #~ msgid "Save links in..." #~ msgstr "Obteniendo cabecera..." #~ msgid "Delete" #~ msgstr "Borrar" #~ msgid "Save _project" #~ msgstr "Guardar _proyecto" #, fuzzy #~ msgid "gtk-preferences" #~ msgstr "Preferencias de gURLChecker" #, fuzzy #~ msgid "gtk-properties" #~ msgstr "Propiedades de página" #, fuzzy #~ msgid "" #~ "Check this option to check links that point on another host that the one " #~ "specified in the project URL" #~ msgstr "" #~ "Selecciona esta opción si no quieres comprobar enlaces que apunten a " #~ "otrohost a parte del especificado en la URL del proyecto." #, fuzzy #~ msgid "" #~ "Check this option to check only one page and don't be interested on pages " #~ "content" #~ msgstr "" #~ "Selecciona esta opción si sólo quieres comprobar una página y no " #~ "estásinteresado en el contenido de las páginas." #, fuzzy #~ msgid "" #~ "Check this options to check pages under other repositories thant the one " #~ "specified for the project URL" #~ msgstr "" #~ "Selecciona esta opcion si no quieres comprobar páginas en otros " #~ "repositoriosa parte del especificado por la URL del proyecto." #, fuzzy #~ msgid "Check this option is you want to export links labels" #~ msgstr "" #~ "Selecciona esta opción si no estás interesado en el contenido de las " #~ "páginas de los marcadores." #, fuzzy #~ msgid "Check this option to numbered lines in the export" #~ msgstr "" #~ "Selecciona esta opción si no estás interesado en el contenido de las " #~ "páginas de los marcadores." #, fuzzy #~ msgid "Actions" #~ msgstr "Dirección:" #, fuzzy #~ msgid "link" #~ msgstr "Enlaces" #, fuzzy #~ msgid "Parent" #~ msgstr "Padre:" #, fuzzy #~ msgid "All this link locations" #~ msgstr "Ver todos las localizaciones de este enlace" #, fuzzy #~ msgid "This page online" #~ msgstr "Ver página padre conectado" #, fuzzy #~ msgid "Parent page online" #~ msgstr "Ver página padre conectado" #, fuzzy #~ msgid "Page source" #~ msgstr "Ver fuente" #, fuzzy #~ msgid "" #~ "The remote host has refused to serve us the page.\n" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "La máquina remota ha rehusado servirnos la página.\n" #~ "Algunos servidores no permiten el método HEAD en determinados ficheros... " #~ "ygURLChecker necesita enviar el método HEAD :-(\n" #~ "\n" #~ "Prueba más tarde, o filtra este dominio en las propiedades" #, fuzzy #~ msgid "" #~ "Some web servers do not allow HEAD method on particular files... and " #~ "gURLChecker need to send HEAD method :-(\n" #~ "\n" #~ "Try to check it later, or filter this domain in the settings." #~ msgstr "" #~ "La máquina remota ha rehusado servirnos la página.\n" #~ "Algunos servidores no permiten el método HEAD en determinados ficheros... " #~ "ygURLChecker necesita enviar el método HEAD :-(\n" #~ "\n" #~ "Prueba más tarde, o filtra este dominio en las propiedades" #, fuzzy #~ msgid "gURLChecker project page" #~ msgstr "gurlchecker" #, fuzzy #~ msgid "Graphic view" #~ msgstr "Artes gráficas:" #, fuzzy #~ msgid "Pages relations" #~ msgstr "Información sobre la página" #~ msgid "FILE" #~ msgstr "FICHERO" #, fuzzy #~ msgid "FTP" #~ msgstr "HTTP" #~ msgid "HTTP" #~ msgstr "HTTP" #~ msgid "MAILTO" #~ msgstr "MAILTO" #~ msgid "Please, enter a domain name." #~ msgstr "Por favor, introduce un nombre de dominio. " #~ msgid "Please, enter a directory name." #~ msgstr "Por favor, introduce un nombre de directorio." #~ msgid "The domain you entered seems not to be valid." #~ msgstr "El dominio que introduciste parece no ser válido." #~ msgid "Please, select a project to delete." #~ msgstr "Por favor, selecciona un proyecto a borrar." #~ msgid "Check email MX" #~ msgstr "Comprobar MX del email" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Emails" #~ msgstr "Emails" #, fuzzy #~ msgid "Check E-Mail MX" #~ msgstr "Comprobar MX del email" #, fuzzy #~ msgid "Authentication" #~ msgstr "Información sobre la página" #~ msgid "Check" #~ msgstr "Comprobar " #, fuzzy #~ msgid "Cookies" #~ msgstr "Propiedades" #~ msgid "Debug" #~ msgstr "Debug " #~ msgid "MAIN URL" #~ msgstr "URL PRINCIPAL" #~ msgid "*" #~ msgstr "*" gurlchecker-0.13.1/po/da.po0000644000175000017500000015674311407055351012376 00000000000000# Danish translation gURLChecker. # Copyright (C) 2010 gURLChecker & nedenstående oversættere. # This file is distributed under the same license as the gURLChecker package. # Gunner Poulsen , 2002, 2003, 2004. # Joe Hansen , 2010. # # bad -> ugyldig # check -> tjek (kontrollere, undersøg) # check -> afkryds (ved dialogbokse) # enter -> indtast (skriv) # gateway -> adgangspunkt # option -> indstilling, tilvalg # retrieve -> indhent (måske modtag) # msgid "" msgstr "" "Project-Id-Version: gURLChecker\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-19 07:51+0200\n" "PO-Revision-Date: 2010-06-18 00:00+2000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/cookies.c:239 msgid "The following cookie will be deleted" msgstr "Den følgende cookie vil blive slettet" #: ../src/cookies.c:259 msgid "The following cookie will be updated" msgstr "Den følgende cookie vil blive opdateret" #: ../src/cookies.c:290 msgid "The following cookie will be added" msgstr "Den følgende cookie vil blive tilføjet" #: ../src/uccroco.c:49 #, c-format msgid "%u - Error after: %s\n" msgstr "%u - Fejl efter: %s\n" #: ../src/uccroco.c:52 #, c-format msgid "%u - Unknown error...\n" msgstr "%u - Ukendt fejl...\n" #: ../src/application.c:112 ../src/search.c:133 msgid "Id" msgstr "Id" #: ../src/application.c:118 msgid "Type" msgstr "Type" #: ../src/application.c:123 ../src/application.c:309 ../src/application.c:1737 #: ../src/application.c:1804 ../src/application.c:1867 ../src/search.c:141 msgid "URL" msgstr "URL" #: ../src/application.c:288 msgid "Custom action" msgstr "Tilpasset handling" #: ../src/application.c:300 ../src/application.c:1667 #: ../src/application.c:1743 msgid "Label" msgstr "Etiket" #: ../src/application.c:318 msgid "Date" msgstr "Dato" #: ../src/application.c:523 ../src/application.c:1507 msgid "Name" msgstr "Navn" #: ../src/application.c:529 msgid "Content" msgstr "Indhold" #: ../src/application.c:805 ../src/application.c:869 msgid "At the end of this session" msgstr "Ved slutningen på denne session" #: ../src/application.c:906 #, c-format msgid "Enter login and password for %s at %s" msgstr "Indtast logind og adgangskode for %s ved %s" #: ../src/application.c:1020 ../src/application.c:1024 msgid "W3C CSS validation result (libcroco)" msgstr "W3C CSS-valideringsresultat (libcroco)" #: ../src/application.c:1025 msgid "This is a valid stylesheet." msgstr "Dette er et gyldigt stilark." #: ../src/application.c:1029 msgid "" "A problem occured while using Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" msgstr "" "Et problem opstod under brug af Crocobiblioteket.\n" "Tjek venligst din konfiguration eller din version af libcroco.\n" "\n" #: ../src/application.c:1048 msgid "W3C HTML validation result (libtidy)" msgstr "W3C HTML-valideringsresultat (libtidy)" #: ../src/application.c:1052 msgid "" "A problem occured while using Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" msgstr "" "Et problem opstod under brug af Tidybiblioteket.\n" "Tjek venligst din konfiguration eller version af libtidy.\n" "\n" #: ../src/application.c:1289 msgid "Found Bad extensions.\n" msgstr "Fandt ugyldige filendelser.\n" #: ../src/application.c:1291 msgid "Found Virus: " msgstr "Fandt virus: " #: ../src/application.c:1302 ../src/application.c:1557 #: ../src/application.c:1559 msgid "No referrer" msgstr "Ingen henviser" #: ../src/application.c:1536 msgid "Missing URL" msgstr "Manglende URL" #: ../src/application.c:1567 ../src/application.c:1599 #: ../src/application.c:1609 msgid "Not specified" msgstr "Ikke angivet" #: ../src/application.c:1577 msgid "Unknown" msgstr "Ukendt" #: ../src/application.c:1582 msgid "(gURLChecker internals)" msgstr "(gURLChecker internt)" #: ../src/application.c:1592 msgid "Disk Cache" msgstr "Diskmellemlager" #: ../src/application.c:1592 msgid "Not cached" msgstr "Mellemlager ej brugt" #: ../src/application.c:1661 ../src/check.c:406 ../ui/gurlchecker.glade.h:109 msgid "E-Mail" msgstr "E-post" #: ../src/application.c:1776 ../src/application.c:1839 #: ../src/application.c:1934 ../src/application.c:1978 #: ../src/application.c:3428 ../src/application.c:3479 ../src/callbacks.c:554 #: ../src/callbacks.c:568 ../src/callbacks.c:590 ../src/callbacks.c:818 #: ../src/callbacks.c:864 ../src/callbacks.c:877 ../src/callbacks.c:1028 #: ../src/check.c:1302 ../src/project.c:548 msgid "Please, select a item." msgstr "Vælg venligst et punkt." #: ../src/application.c:1906 msgid "" "Cannot start your web browser\n" "The following error occured:\n" msgstr "" "Kan ikke starte din internetbrowser\n" "Den følgende fejl opstod:\n" #: ../src/application.c:1956 ../src/application.c:1988 msgid "" "Either the corresponding file is empty or does not exist in the cache " "directory!" msgstr "" "Enten er den tilhørende fil tom eller også findes den ikke i biblioteket for " "mellemlageret!" #: ../src/application.c:1986 ../ui/gurlchecker.glade.h:209 msgid "View source" msgstr "Vis kilde" #: ../src/application.c:2029 msgid "Redirect" msgstr "Videresend" #: ../src/application.c:2030 msgid "Edit" msgstr "Rediger" #: ../src/application.c:2031 msgid "Create target" msgstr "Opret mål" #: ../src/application.c:2096 msgid "Host unreachable" msgstr "Vært utilgængelig" #: ../src/application.c:2097 msgid "" "The remote host does not respond at all...\n" "Perhaps you would change the timeout in gURLChecker preferences, or perhaps " "it is really down.\n" "\n" "Try to check it later." msgstr "" "Den eksterne maskine svarer overhovedet ikke...\n" "Måske du skulle ændre indstillingerne for udløb af tiden i gURLCheckers " "indstillinger, eller måske er den rigtigt gået ned.\n" "\n" "Prøv at undersøge den igen senere." #: ../src/application.c:2106 msgid "FILE:// protocol" msgstr "FIL:// protokol" #: ../src/application.c:2107 msgid "" "File protocol detected.\n" "You have asked me to warn you when I find the \"FILE://\" protocol in a link." msgstr "" "Filprotokollen registreret.\n" "Du har bedt om at blive advaret når protokollen »FIL://« er angivet i en " "henvisning." #: ../src/application.c:2115 ../src/application.c:2174 msgid "Page available" msgstr "Side tilgængelig" #: ../src/application.c:2116 ../src/application.c:2175 #: ../src/application.c:2192 ../src/application.c:2200 msgid "" "No problem with this page.\n" "Server is up and document can be loaded without any problem." msgstr "" "Ingen problemer med denne side.\n" "Serveren kører og siden kan hentes uden problemer." #: ../src/application.c:2123 ../src/application.c:2240 msgid "Page not found" msgstr "Side ikke fundet" #: ../src/application.c:2123 ../src/application.c:2240 msgid "The page does not exist on the server." msgstr "Siden findes ikke på serveren." #: ../src/application.c:2129 msgid "Bad E-Mail link" msgstr "Ugyldig e-post-henvisning" #: ../src/application.c:2130 msgid "The E-Mail specified in the link is not well formatted." msgstr "Den angive e-post i henvisningen har ugyldig syntaks." #: ../src/application.c:2136 msgid "Problem with MX" msgstr "Problem med MX" #: ../src/application.c:2137 msgid "" "The MX of the domain specified for this E-Mail is not valid or the domain " "itself is not valid." msgstr "" "Domænets MX der er angivet for denne e-post er ikke gyldigt, eller domænet i " "sig selv er ikke gyldigt." #: ../src/application.c:2144 msgid "E-Mail link ok" msgstr "E-post-henvisning o.k." #: ../src/application.c:2144 msgid "No problem with this E-Mail." msgstr "Ingen problemer med denne e-post." #: ../src/application.c:2150 msgid "Item ignored" msgstr "Punkt ignoreret" #: ../src/application.c:2151 msgid "You chose to ignore this item while gURLChecker was checking it." msgstr "" "Du valgte at ignorere dette punkt, mens gURLChecker var ved at undersøge det." #: ../src/application.c:2158 msgid "Malformed link" msgstr "Fejlformateret henvisning" #: ../src/application.c:2159 msgid "" "The HTML link is malformed.\n" "Perhaps HREF value is missing?" msgstr "" "HTML-henvisningen er fejlformateret.\n" "Måske mangler HREF-værdien?" #: ../src/application.c:2165 msgid "No valid information" msgstr "Ingen gyldig information" #: ../src/application.c:2166 msgid "" "gURLChecker can't interpret the status code sent by the remote host.\n" "Please, report the value of the \"Status\" header field to the author of " "gURLChecker." msgstr "" "gURLChecker kan ikke fortolke den fejlmeddelelse den fremmede vært sendte.\n" "Send værdierne i teksthovedfeltet »Status« til forfatteren af gURLChecker." #: ../src/application.c:2182 msgid "Page moved permanently" msgstr "Siden er flyttet permanent" #: ../src/application.c:2183 msgid "" "No real problem with this page.\n" "The requested resource just has been assigned a new permanent URI." msgstr "" "Der er egentligt ingen problemer med denne side.\n" "Siden er bare flyttet permanent til en anden URI." #: ../src/application.c:2191 msgid "Page moved Temporarily" msgstr "Siden er midlertidigt flyttet" #: ../src/application.c:2199 msgid "The response to the request can be found under a different URI" msgstr "Svaret på forespørgslen kan findes under en anden URI" #: ../src/application.c:2207 msgid "Restricted access" msgstr "Begrænset adgang" #: ../src/application.c:2208 msgid "This page need authentication to be viewed." msgstr "Denne side kræver godkendelse for at kunne ses." #: ../src/application.c:2214 msgid "Access forbidden" msgstr "Adgang forbudt" #: ../src/application.c:2215 ../src/application.c:2263 msgid "" "The remote host has refused to serve us the page.\n" "Given the way gURLChecker process links, this error should not occured.\n" "\n" "Please report this bug to the gURLChecker Team." msgstr "" "Den eksterne vært har nægtet at sende os siden.\n" "Givet den måde gURLChecker behandler henvisninger, burde den her fejl\n" "ikke opstå.\n" "\n" "Rapporter venligst denne fejl til holdet bag gURLChecker." #: ../src/application.c:2224 msgid "Page available, but with no content" msgstr "Side tilgængelig, men siden er tom" #: ../src/application.c:2225 msgid "" "No problem with this page, but it has no content at all...\n" "\n" "Try to check it later." msgstr "" "Der er ingen problemer med siden, men den har intet indhold...\n" "\n" "Prøv at undersøge den senere." #: ../src/application.c:2232 msgid "Malformed URL" msgstr "Fejlformateret URL" #: ../src/application.c:2233 msgid "" "The request could not be understood by the server due to malformed syntax." msgstr "" "Serveren kunne ikke forstå forespørgslen, da URL'en havde en ugyldig syntaks." #: ../src/application.c:2246 msgid "Method not allowed" msgstr "Metoden er ikke tilladt" #: ../src/application.c:2247 msgid "" "The remote host has refused to serve us the page.\n" "\n" "Try to check it later." msgstr "" "Værten har nægtet at vise os siden.\n" "\n" "Prøv at undersøge den senere." #: ../src/application.c:2254 msgid "Internal server error" msgstr "Intern serverfejl" #: ../src/application.c:2255 msgid "" "The page contain bad code, or the server is misconfigured.\n" "\n" "Try to check it later." msgstr "" "Siden indeholder ugyldig kode, eller serveren er sat forkert op.\n" "\n" "Prøv at undersøge den senere." #: ../src/application.c:2262 msgid "Method not supported" msgstr "Metoden er ikke understøttet" #: ../src/application.c:2272 msgid "Bad Gateway" msgstr "Ugyldigt adgangspunkt" #: ../src/application.c:2273 msgid "" "The server, while acting as a gateway or proxy, received an invalid response " "from the upstream server it accessed in attempting to fulfill the request.\n" "\n" "Try to check this page later." msgstr "" "Serveren der fungerer som adgangspunkt eller proxy modtog ikke noget fra den " "server, den skulle modtage siden fra.\n" "\n" "Prøv at undersøge siden igen senere." #: ../src/application.c:2282 msgid "Service unavailable" msgstr "Tjenesten er utilgængelig" #: ../src/application.c:2283 msgid "" "The server is currently unable to handle the request due to a temporary " "overloading or maintenance of the server. It is also possible that you are " "using a proxy that can not join the given host.\n" "\n" "Try to check it later, or change your proxy settings." msgstr "" "Serveren svarer i øjeblikket ikke på forespørgslen, for eksempel på grund af " "overbelastning eller midlertidigt arbejde på serveren. Det er også muligt, " "at du benytter en proxyserver, der ikke kan finde den angivne vært.\n" "\n" "Prøv at undersøge den senere, eller ret dine proxyindstillinger." #: ../src/application.c:2293 msgid "Request not completed" msgstr "Forespørgslen ikke færdiggjort" #: ../src/application.c:2294 msgid "" "The server, while acting as a gateway or proxy, did not receive a timely " "response from the upstream server specified by the URI (e.g. HTTP, FTP, " "LDAP) or some other auxiliary server (e.g. DNS) it needed to access in " "attempting to complete the request." msgstr "" "Serveren, der fungerer som adgangspunkt eller proxy, modtog ikke noget svar " "fra den server, du angiver I URI'en (for eksempel HTTP, FTP, LDAP) eller en " "hjælpeserver (for eksempel DNS) den skulle bruge for at kunne færdiggøre " "forespørgslen." #: ../src/application.c:2304 msgid "Access forbidden or too many connections" msgstr "Adgang nægtet, eller for mange forbindelser" #: ../src/application.c:2306 msgid "" "This server do not accept anonymous users, or the maximum number of allowed " "clients are already connected.\n" "\n" "Try to check it later." msgstr "" "Serveren tillader ikke anonyme brugere, eller også er det maksimalt tilladte " "antal brugere allerede tilsluttet.\n" "\n" "Prøv at undersøge det senere." #: ../src/application.c:2314 msgid "Receiving timout requesting the page" msgstr "Forespørgslen på denne side overskrider tidsgrænsen" #: ../src/application.c:2315 msgid "" "Perhaps you would change the timeout in gURLChecker preferences. Perhaps the " "remote host is too busy for the moment to responde to gURLChecker request, " "or perhaps the remote host does not exist at all.\n" "\n" "Try to check it later." msgstr "" "Måske skal du ændre udløbstiden i gURLCheckers indstillinger. Måske er den " "maskine du spørger for travlt optaget for tiden til at svare på gURLCheckers " "forespørgsel, eller måske eksisterer den slet ikke.\n" "\n" "Prøv at undersøge den igen senere." #: ../src/application.c:2371 msgid "Cannot start new instance of gURLChecker; the following error occured:" msgstr "Kan ikke starte en ny udgave af gURLChecker. Følgende fejl opstod:" #: ../src/application.c:2698 #, c-format msgid "" "A problem occured while initializing Clamav library :\n" "%s\n" "Please check your configuration or your libclamav version.\n" "\n" "Virii will not be detected." msgstr "" "En fejl opstod under initialiseriing af Clamavbiblioteket:\n" "%s\n" "Tjek venligst din konfiguration eller din version af libclamav.\n" "\n" "Vira vil ikke blive fanget." #: ../src/application.c:2726 msgid "" "A problem occured while initializing Croco library.\n" "Please check your configuration or your libcroco version.\n" "\n" "CSS stylesheets will not be validated." msgstr "" "En fejl opstod under initialisering af Crocobiblioteket.\n" "Tjek venligst din konfiguration eller din version af libcroco.\n" "\n" "CSS-stilark vil ikke blive valideret." #: ../src/application.c:2743 msgid "" "A problem occured while initializing Tidy library.\n" "Please check your configuration or your libtidy version.\n" "\n" "HTML pages will not be validated." msgstr "" "En fejl opstod under initialisering af Tidybiblioteket.\n" "Tjek venligst din konfiguration eller din version af libtidy.\n" "\n" "HTML-sider vil ikke blive valideret." #: ../src/application.c:3003 ../src/web_site.c:270 ../src/bookmarks.c:544 #: ../ui/gurlchecker.glade.h:59 msgid "Check in progress..." msgstr "Tjek i gang..." #: ../src/application.c:3067 msgid "" "Emmanuel Saracco\n" "\n" "Contributors:\n" "Stephane Loeuillet" msgstr "" "Emmanuel Saracco\n" "\n" "Bidragydere:\n" "Stephane Loeuillet" #: ../src/application.c:3074 msgid "Manpage:" msgstr "Manualside:" #: ../src/application.c:3078 msgid "Code:" msgstr "Kode:" #: ../src/application.c:3083 msgid "" "Takeshi Aihana, Japanese\n" "Alexander Hunziker, German\n" "Florent Jugla, Esperanto\n" "Daniel Pecos, Spanish\n" "Gunner Poulsen, Danish\n" "Emmanuel Saracco, French\n" "Angelo Theodorou, Italian\n" msgstr "" "Takeshi Aihana, japansk\n" "Alexander Hunziker, tysk\n" "Florent Jugla, esperanto\n" "Daniel Pecos, spansk\n" "Gunner Poulsen, dansk\n" "Joe Hansen, dansk\n" "Emmanuel Saracco, fransk\n" "Angelo Theodorou, italiensk\n" #: ../src/application.c:3103 msgid "" "gURLChecker is a graphical web links checker.\n" "It can work on a whole site, a single local page or a browser bookmarks file" msgstr "" "gURLChecker tjekker internethenvisninger.\n" "Den kan arbejde på en hel internetside, en enkel lokal side eller en " "browsers bogmærkefil" #: ../src/application.c:3327 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, Google Chrome, or Firefox " "database file" msgstr "" "Du kan vælge en lokal eller ekstern bogmærkefil.\n" "Denne fil skal være en databasefil af typen XBEL, Opera, Google Chrome eller " "Firefox" #: ../src/application.c:3332 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Firefox database file" msgstr "" "Du kan vælge en lokal eller ekstern bogmærkefil.\n" "Denne fil skal være en databasefil af typen XBEL, Opera eller Firefox" #: ../src/application.c:3337 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be either a XBEL, Opera, or a Google Chrome file" msgstr "" "Du kan vælge en lokal eller ekstern bogmærkefil.\n" "Denne fil skal være en databasefil af typen XBEL, Opera eller Google Chrome" #: ../src/application.c:3342 msgid "" "You can select a local or remote bookmarks file.\n" "This file have to be in XBEL or Opera format" msgstr "" "Du kan vælge en lokal eller ekstern bogmærkefil.\n" "Denne fil skal være i XBEL- eller Operaformat" #: ../src/application.c:3359 msgid "New domain to reject" msgstr "Nyt domæne der skal afvises" #: ../src/application.c:3360 msgid "Add a domain to reject" msgstr "Tilføj et domæne der skal afvises" #: ../src/application.c:3372 msgid "This domain name is not valid." msgstr "Domænedelen af e-post-adressen er ikke gyldig." #: ../src/application.c:3441 msgid "New directory to reject" msgstr "Ny mappe der skal afvises" #: ../src/application.c:3442 msgid "Add a directory to reject" msgstr "Tilføj en mappe der skal afvises" #: ../src/application.c:3543 msgid "Please, enter a string to search." msgstr "Indtast den streng der skal søges efter." #: ../src/application.c:3566 msgid "Please, check that there is no mismatch in your URL and try again." msgstr "Tjek at du skrev den rigtige internetadresse og prøv igen." #: ../src/application.c:3593 msgid "Sorry, but this version of gurlchecker have no SSL support" msgstr "Beklager, men denne version af gurlchecker understøtter ikke SSL" #: ../src/application.c:3672 ../src/project.c:441 msgid "[Local file] Page information" msgstr "[Lokal fil] Sideinformation" #: ../src/application.c:3675 ../src/project.c:444 msgid "[Web site] Page information" msgstr "[Internetside] Sideinformation" #: ../src/application.c:3730 msgid "Please choose a bookmarks file to check." msgstr "Vælg den bogmærkefil der skal undersøges." #: ../src/application.c:3785 msgid "" "A problem occured when retrieving remote bookmarks file.\n" "Try to pump up the timeout delay." msgstr "" "En fejl opstod under indhentelse af ekstern bogmærkefil.\n" "Forsøg at forøge forsinkelsen på tidsudløb." #: ../src/application.c:3799 msgid "" "Either the file is not correct or your don't have appropriate rights on it.\n" "Please choose a valid bookmarks file." msgstr "" "Enten er filen ødelagt, eller du har ikke de nødvendige rettigheder.\n" "Vælg venligst en gyldig bogmærkefil." #: ../src/application.c:3815 msgid "" "The file format is not correct.\n" "gurlchecker can deal only with XBEL, Opera, Google " "Chrome, and Firefox database file." msgstr "" "Filformatet er ikke korrekt.\n" "gurlchecker kan kun håndtere databasefiler af typen XBEL, " "Opera, Google og Firefox." #: ../src/application.c:3822 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Firefox database file." msgstr "" "Filformatet er ikke korrekt.\n" "Denne version af gurlchecker kan kun håndtere databasefiler af typen " "XBEL, Opera og Firefox." # engelsk fejl mangler and. #: ../src/application.c:3829 #, fuzzy msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL, Opera " "and Google Chrome file." msgstr "" "Filformatet er ikke korrekt.\n" "Denne version af gurlchecker kan kun håndtere filer af typen XBEL, " "Opera og Google Chrome." #: ../src/application.c:3835 msgid "" "The file format is not correct.\n" "This version of gurlchecker can deal only with XBEL and Opera file." msgstr "" "Filformatet er ikke korrekt.\n" "Denne version af gurlchecker kan kun håndtere filer af typen XBEL " "og Opera." #: ../src/application.c:3852 msgid "[Remote bookmarks] Page information" msgstr "[Eksterne bogmærker] Sideinformation" #: ../src/application.c:3855 msgid "[Local bookmarks] Page information" msgstr "[Lokale bogmærker] Sideinformation" #: ../src/application.c:4071 ../src/check.c:1556 msgid "Cleaning..." msgstr "Rydder op..." #: ../src/callbacks.c:774 msgid "" "All bookmarks referring to not found page will be removed.\n" "Do you want to continue?" msgstr "" "Alle bogmærker der henviser til not found page (ikke fundet side)vil blive " "fjernet.\n" "Ønsker du at fortsætte?" #: ../src/callbacks.c:803 msgid "" "Selected link will be removed.\n" "Do you want to continue?" msgstr "" "Valgte henvisninger vil blive fjernet.\n" "Ønsker du at fortsætte?" #: ../src/callbacks.c:900 ../src/callbacks.c:918 msgid "Please, select a project." msgstr "Vælg venligst et projekt." #: ../src/callbacks.c:913 ../src/callbacks.c:1013 msgid "Are you sure you want to delete this project?" msgstr "Er du sikker på, at du vil slette dette projekt?" #: ../src/check.c:400 msgid "Hypertext Link" msgstr "Hyperteksthenvisning" #: ../src/check.c:402 msgid "Local Hypertext Link" msgstr "Lokal hyperteksthenvisning" #: ../src/check.c:404 msgid "Local Image" msgstr "Lokalt billede" #: ../src/check.c:408 ../ui/gurlchecker.glade.h:131 msgid "Image" msgstr "Billede" #: ../src/check.c:410 msgid "Frame link" msgstr "Rammelink" #: ../src/check.c:412 msgid "StyleSheet link" msgstr "Henvisning til stilark" #: ../src/check.c:414 msgid "Unknown Type" msgstr "Ukendt type" #: ../src/check.c:867 msgid "Retrieving source..." msgstr "Modtager kilden..." #: ../src/check.c:998 msgid "Continue" msgstr "Fortsæt" #: ../src/check.c:1004 ../ui/gurlchecker.glade.h:184 msgid "Suspend" msgstr "Suspender" #: ../src/check.c:1045 msgid "Checking file (FTP)..." msgstr "Undersøger fil (FTP)..." #: ../src/check.c:1056 msgid "Retrieving header..." msgstr "Modtager sidehoved..." #: ../src/check.c:1228 msgid "Item already checked..." msgstr "Elementet er allerede undersøgt..." #: ../src/check.c:1316 #, c-format msgid "MX host %s for this domain is alive and listen on port 25." msgstr "MX-værten %s for dette domæne er oppe og lytter på port 25." #: ../src/check.c:1322 msgid "MX host does not respond or the E-Mail's domain is not valid." msgstr "MX-værten svarer ikke eller domænet i denne e-post er ikke gyldigt." #: ../src/check.c:1328 msgid "The E-Mail's domain is not valid." msgstr "Domænedelen af e-post-adressen er ikke gyldig." #: ../src/check.c:1767 msgid "SECURITY: Checking for virii..." msgstr "SIKKERHED: Tjekker for vira..." #: ../src/check.c:1797 msgid "W3C: Validate CSS stylesheet..." msgstr "W3C: Valider CSS-stilark..." #: ../src/check.c:1829 msgid "W3C: Validate HTML page..." msgstr "W3C: Valider HTML-side..." #: ../src/check.c:1917 #, c-format msgid "SECURITY: Checking for bad extensions [%s]..." msgstr "SIKKERHED: Tjekker for ugyldige filendelser [%s]..." #: ../src/check.c:2006 #, c-format msgid "Sleeping %u second(s)..." msgstr "Sover %u sekunder..." #: ../src/check.c:2119 msgid "Checking E-Mail..." msgstr "Tjekker e-post-adressen..." #: ../src/check.c:2185 msgid "Checking local file..." msgstr "Tjekker lokal fil..." #: ../src/check.c:2288 ../ui/gurlchecker.glade.h:203 msgid "Updating report..." msgstr "Opdaterer rapporten..." #: ../src/check.c:2594 ../src/web_site.c:175 msgid "Searching..." msgstr "Søger..." #: ../src/web_site.c:267 msgid "Updating link..." msgstr "Opdaterer henvisning..." #: ../src/web_site.c:683 msgid "Updating branch..." msgstr "Opdaterer grenen..." #: ../src/web_site.c:733 msgid "Updating all project..." msgstr "Opdaterer hele projektet..." #: ../src/web_site.c:814 #, c-format msgid "Checking %s..." msgstr "Undersøger %s..." #: ../src/web_site.c:829 msgid "MAIN PAGE" msgstr "HOVEDSIDE" #: ../src/web_site.c:848 msgid "" "Access to the specified project URL is restricted.\n" "Check has been cancelled" msgstr "" "Adgang til det angive projekts internetadresse er begrænset.\n" "Tjek er blevet annulleret" #: ../src/web_site.c:908 msgid "" "The specified project URL does not respond.\n" "Check has been cancelled." msgstr "" "Det angivne projekts internetadresse svarer ikke.\n" "Tjekket er annulleret." #: ../src/bookmarks.c:305 msgid "Should remote bookmarks be saved on your machine?" msgstr "Skal eksterne bogmærker gemmes på din maskine?" #: ../src/bookmarks.c:311 msgid "Save bookmarks file" msgstr "Gem bogmærkefil" #: ../src/bookmarks.c:312 msgid "Input filename" msgstr "Inddatafilnavn" # engelsk fejl #: ../src/bookmarks.c:320 #, fuzzy msgid "" "The filename is not in a correct format.\n" "Nothing has been done." msgstr "" "Filnavnet er ikke i et korrekt format.\n" "Intet er gjort." #: ../src/bookmarks.c:344 msgid "" "Bookmarks changes will be saved.\n" "Your old bookmarks file will be renamed with \".uc\" extension.\n" "Do you want to save?" msgstr "" "Ændringerne i bogmærker bliver gemt.\n" "Din gamle bogmærkefil gemmes med filendelsen ».uc«.\n" "Vil du gemme?" #: ../src/bookmarks.c:379 msgid "" "A error occured.\n" "Nothing has been done." msgstr "" "En fejl opstod.\n" "Intet er udført." #: ../src/bookmarks.c:391 msgid "" "Bookmarks changes will be applied.\n" "We recommand you to manually backup your Firefox database before applying " "changes!\n" "Do you want to apply?" msgstr "" "Bogmærkeændringer vil blive gemt.\n" "Vi anbefaler at du manuelt laver en sikkerhedskopi af din Firefoxdatabase " "før du gemmer ændringer!\n" "\n" "Vil du gemme?" #: ../src/bookmarks.c:1058 msgid "" "Either the given XML file is not well formed or its encoding can not be " "found...\n" "If you are checking a remote bookmarks file, try to pump up the timeout " "delay.\n" "Check has been aborted." msgstr "" "Enten er den angivne XML-fil ikke korrekt udformet eller dens kodning kan " "ikke aflæses...\n" "Hvis du tjekker en ekstern bogmærkefil, så forsøg eventuelt at øge " "forsinkelsen på tidsudløbet.\n" "Tjek afbrudt." #: ../src/bookmarks.c:1073 msgid "The given XML file is empty.\n" msgstr "Den angivne XML-fil er tom.\n" #: ../src/main.c:126 msgid "Wrote by Emmanuel Saracco ." msgstr "" "Skrevet af Emmanuel Saracco ." #: ../src/main.c:127 msgid "" "This is free software; see the source for copying conditions. There is NO " "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" "Dette program er fri software. Se bestemmelserne om ophavsret til programmet " "i kildekoden. Der er ingen som helst garanti for noget som helst. End ikke " "AT PROGRAMMET VIRKER eller KAN BRUGES TIL ET BESTEMT FORMÅL." #: ../src/main.c:136 #, c-format msgid "" "Usage: %s [OPTION] [URL]\n" "A graphic web link checker.\n" "\n" " -h, --help display this help\n" " -V, --version display %s version\n" " -u, --http-user user for basic authentication\n" " -p, --http-passwd password for basic authentication\n" " -A, --no-urls-args ignore URLs arguments\n" "\n" "Report bugs to \n" msgstr "" "Brug: %s [TILVALG] [URL]\n" "Et grafisk program til at undersøge henvisninger.\n" "\n" " -h, --help\t vis denne hjælpetekst\n" " -V, --version vis %s version\n" " -u, --http-user bruger til grundlæggende godkendelse\n" " -p, --http-passwd adgangskode til grundlæggende godkendelse\n" " -A --no-urls-args ignorer URLs argumenter\n" "\n" "Send fejlmeddelelser til \n" #: ../src/report.c:244 msgid "Cannot execute xsltproc; the following error occured:" msgstr "Kan ikke starte xsltproc; Følgende fejl opstod:" #: ../src/report.c:472 #, c-format msgid "Checked links: %d" msgstr "Undersøgte henvisninger: %d" #: ../src/report.c:475 #, c-format msgid "Checked links: %d / %d" msgstr "Undersøgte henvisninger: %d / %d" #: ../src/report.c:484 ../ui/gurlchecker.glade.h:124 msgid "Good links" msgstr "Gode henvisninger" #: ../src/report.c:488 ../ui/gurlchecker.glade.h:44 msgid "Bad links" msgstr "Ugyldige henvisninger" #: ../src/report.c:493 ../ui/gurlchecker.glade.h:144 msgid "Malformed links" msgstr "Fejlformaterede henvisninger" #: ../src/report.c:499 msgid "Ignored links" msgstr "Ignorerede henvisninger" #: ../src/report.c:504 ../ui/gurlchecker.glade.h:191 msgid "Timeouts" msgstr "Udløb af tid" #: ../src/report.c:562 #, c-format msgid "Elapsed time: %02d:%02d:%02d" msgstr "Forbrugt tid: %02d:%02d:%02d" #: ../src/utils.c:1671 #, c-format msgid "%lu bytes" msgstr "%lu byte" #: ../src/utils.c:1673 #, c-format msgid "%.2f KB (%lu bytes)" msgstr "%.2f KB (%lu byte)" #: ../src/utils.c:1676 #, c-format msgid "%.2f MB (%lu bytes)" msgstr "%.2f MB (%lu byte)" #: ../src/html_parser.c:84 msgid "Parsing HTML code..." msgstr "Fortolker HTML-koden..." #: ../src/html_parser.c:129 msgid "Parsing CSS code..." msgstr "Fortolker CSS-koden..." #: ../src/search.c:522 #, c-format msgid "%u item(s) found" msgstr "%u punkter fundet" #: ../src/search.c:528 msgid "Search ended" msgstr "Søgning slut" #. status bar message #: ../src/project.c:361 #, c-format msgid "Loading [%s] project..." msgstr "Indlæser [%s] projekt..." #: ../src/project.c:562 #, c-format msgid "" "Created on %s\n" "Updated on %s" msgstr "" "Oprettet %s\n" "Opdateret %s" #: ../src/project.c:609 msgid "Please, enter a title for the current project." msgstr "Skriv en titel på projektet." #: ../src/project.c:1391 msgid "Save the current project ?" msgstr "Gem det aktuelle projekt?" #: ../src/project.c:1400 msgid "Saving project..." msgstr "Gemmer projektet..." #: ../src/tooltips.c:214 #, c-format msgid "" "Status: %s\n" "Location: %s\n" "Parent location: %s\n" "Last modified: %s" msgstr "" "Status: %s\n" "Sted: %s\n" "Overordnet sted: %s\n" "Sidst ændret: %s" #: ../gurlchecker.desktop.in.h:1 msgid "Graphical Web Links checker" msgstr "Grafisk tjek af internethenvisninger" #: ../gurlchecker.desktop.in.h:2 msgid "gurlchecker" msgstr "gurlchecker" #: ../src/getopt.c:689 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Tilvalg `%s' er tvetydigt\n" #: ../src/getopt.c:715 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Tilvalg `--%s' tillader ikke et argument\n" #: ../src/getopt.c:721 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Tilvalg `%c%s' tillader ikke et argument\n" #: ../src/getopt.c:740 ../src/getopt.c:919 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Tilvalg `%s' kræver et argument\n" #: ../src/getopt.c:771 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Tilvalg ikke genkendt `--%s'\n" #: ../src/getopt.c:777 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Tilvalg ikke genkendt `%c%s'\n" #. 1003.2 specifies the format of this message. #: ../src/getopt.c:803 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Ugyldigt tilvalg -- %c\n" #: ../src/getopt.c:805 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ugyldigt tilvalg -- %c\n" #: ../src/getopt.c:836 ../src/getopt.c:969 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Tilvalg kræver et argument -- %c\n" #: ../src/getopt.c:886 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Tilvalg `-W %s' er tvetydigt\n" #: ../src/getopt.c:904 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: Tilvalg `-W %s' tillader ikke et argument\n" #: ../ui/gurlchecker.glade.h:1 msgid "\n" msgstr "\n" #: ../ui/gurlchecker.glade.h:3 msgid " " msgstr " " #: ../ui/gurlchecker.glade.h:4 msgid "CSS Extensions to check" msgstr "CSS-filendelser der skal tjekkes" #: ../ui/gurlchecker.glade.h:5 msgid "Content management" msgstr "Indholdshåndtering" #: ../ui/gurlchecker.glade.h:6 msgid "Documents to ignore" msgstr "Dokumenter der skal ignoreres" #: ../ui/gurlchecker.glade.h:7 msgid "Expires :" msgstr "Udløber:" #: ../ui/gurlchecker.glade.h:8 msgid "Extensions to search for" msgstr "Filendelser der skal søges efter" #: ../ui/gurlchecker.glade.h:9 msgid "Files to check" msgstr "Filer der skal tjekkes" #: ../ui/gurlchecker.glade.h:10 msgid "HTML extensions to check" msgstr "HTML-filendelser der skal tjekkes" #: ../ui/gurlchecker.glade.h:11 msgid "Images to ignore" msgstr "Billeder der skal ignoreres" #: ../ui/gurlchecker.glade.h:12 msgid "Location :" msgstr "Sted:" #: ../ui/gurlchecker.glade.h:13 msgid "Location:" msgstr "Sted:" #: ../ui/gurlchecker.glade.h:14 msgid "Meta Tags" msgstr "Metamærker" #: ../ui/gurlchecker.glade.h:15 msgid "Modified :" msgstr "Ændret:" #: ../ui/gurlchecker.glade.h:16 msgid "Name :" msgstr "Navn:" #: ../ui/gurlchecker.glade.h:17 msgid "Options" msgstr "Indstillinger:" #: ../ui/gurlchecker.glade.h:18 msgid "Page:" msgstr "Side:" #: ../ui/gurlchecker.glade.h:19 msgid "Path :" msgstr "Sti:" #: ../ui/gurlchecker.glade.h:20 msgid "Properties" msgstr "Egenskaber" #: ../ui/gurlchecker.glade.h:21 msgid "Referrer :" msgstr "Henviser:" #: ../ui/gurlchecker.glade.h:22 msgid "Security:" msgstr "Sikkerhed:" #: ../ui/gurlchecker.glade.h:23 msgid "Server type :" msgstr "Servertype:" #: ../ui/gurlchecker.glade.h:24 msgid "Server:" msgstr "Server:" #: ../ui/gurlchecker.glade.h:25 msgid "Size :" msgstr "Størrelse:" #: ../ui/gurlchecker.glade.h:26 msgid "Source :" msgstr "Kilde:" #: ../ui/gurlchecker.glade.h:27 msgid "Status :" msgstr "Status:" #: ../ui/gurlchecker.glade.h:28 msgid "Type :" msgstr "Type:" #: ../ui/gurlchecker.glade.h:29 msgid "Value :" msgstr "Værdi:" #: ../ui/gurlchecker.glade.h:30 msgid "Warnings" msgstr "Advarsler" #: ../ui/gurlchecker.glade.h:31 msgid "You can edit cookie's properties before accepting it:" msgstr "Du kan redigere cookiens egenskaber før du accepterer den:" #: ../ui/gurlchecker.glade.h:32 msgid "Accept" msgstr "Accepter" #: ../ui/gurlchecker.glade.h:33 msgid "Accept all cookies" msgstr "Accepter alle cookier" #: ../ui/gurlchecker.glade.h:34 msgid "Activate" msgstr "Aktiver" #: ../ui/gurlchecker.glade.h:35 msgid "Activate W3C validation" msgstr "Aktiver W3C-validering" #: ../ui/gurlchecker.glade.h:36 msgid "Activate security checks" msgstr "Aktiver sikkerhedstjek" #: ../ui/gurlchecker.glade.h:37 msgid "Advanced options" msgstr "Avancerede indstillinger" #: ../ui/gurlchecker.glade.h:38 msgid "After that time, unsuccessful connection intent will be aborted" msgstr "" "Efter dette tidsforløb vil forbindelseshensigt der ikke er gemmeført blive " "afbrudt" #: ../ui/gurlchecker.glade.h:39 msgid "All the links" msgstr "Alle henvisningerne" #: ../ui/gurlchecker.glade.h:40 msgid "Authentication" msgstr "Godkendelse" #: ../ui/gurlchecker.glade.h:41 msgid "" "Bad extensions to search for, separated by comma.\n" "Ex.: bak,bad,sav,~,ok,-,old,orig,false,::$data" msgstr "" "Ugyldige filendelser der skal søges efter, adskilt af komma.\n" "F.eks.: bak,bad,sav,~,ok,-,old,orig,false,::$data" #: ../ui/gurlchecker.glade.h:43 msgid "Bad extentions on server" msgstr "Ugyldige filendelser på server" #: ../ui/gurlchecker.glade.h:45 msgid "Block a host in timeout after" msgstr "Bloker en maskine der ikke svarer efter" #: ../ui/gurlchecker.glade.h:46 msgid "Bookmarks file" msgstr "Bogmærkefil" #: ../ui/gurlchecker.glade.h:47 msgid "Branch update" msgstr "Opdater grenen" #: ../ui/gurlchecker.glade.h:48 msgid "By protocol" msgstr "Efter protokol" #: ../ui/gurlchecker.glade.h:49 msgid "By status" msgstr "Efter status" #: ../ui/gurlchecker.glade.h:50 msgid "By type" msgstr "Efter type" #: ../ui/gurlchecker.glade.h:51 msgid "" "CSS extensions to check, separated by comma.\n" "Ex.: css" msgstr "" "CSS-filendelser der skal tjekeks, adskilt af komma.\n" "F.eks.: css" #: ../ui/gurlchecker.glade.h:53 msgid "CSV export" msgstr "CSV-eksport" #: ../ui/gurlchecker.glade.h:54 msgid "Cancel" msgstr "Afbryd" #: ../ui/gurlchecker.glade.h:55 msgid "Cancel check" msgstr "Afbryd tjek" #: ../ui/gurlchecker.glade.h:56 msgid "Case sensitive" msgstr "Versalfølsom" #: ../ui/gurlchecker.glade.h:57 msgid "Check" msgstr "Undersøg" #: ../ui/gurlchecker.glade.h:58 msgid "Check MX" msgstr "Undersøg MX" #: ../ui/gurlchecker.glade.h:60 msgid "Check report" msgstr "Undersøgelsesrapport" #: ../ui/gurlchecker.glade.h:61 msgid "Check this option for links numbering" msgstr "Afkryds denne indstilling for nummerering af henvisninger" #: ../ui/gurlchecker.glade.h:62 msgid "Check this option if you are not interested in bookmarks pages content" msgstr "" "Afkryds denne indstilling hvis du ikke er interesseret i bogmærkesidernes " "indhold" #: ../ui/gurlchecker.glade.h:63 msgid "" "Check this option if you want to limit check to the given directory and its " "subdirectories on the given Web site" msgstr "" "Afkryds denne indstilling hvis du ønsker at begrænse tjek til den angivne " "mappe og dennes undermapper på den angivne internetside" #: ../ui/gurlchecker.glade.h:64 msgid "" "Check this option to avoid possible infinite scan (when some arguments are " "randomly generated, for example)" msgstr "" "Afkryds denne indstilling for at undgå mulige uendelige skanninger (for " "eksempel når nogle argumenter genereres tilfældigt)" #: ../ui/gurlchecker.glade.h:65 msgid "" "Check this option to avoid some nasty infinite loops (when some arguments " "are randomly generated, for example)" msgstr "" "Afkryds denne indstilling for at undgå slemme uendelige loop (for eksempel " "når nogle argumenter genereres tilfældigt)" #: ../ui/gurlchecker.glade.h:66 msgid "" "Check this option to be prompted for Basic Authentication when a page " "request it" msgstr "" "Afkryds denne indstilling for at blive spurgt om grundlæggende godkendelse " "når en side anmoder om den" #: ../ui/gurlchecker.glade.h:67 msgid "Check this option to check FTP links" msgstr "Afkryds denne indstilling for at tjekke FTP-henvisninger" #: ../ui/gurlchecker.glade.h:68 msgid "Check this option to check MX of e-mails domains" msgstr "Afkryds denne indstilling for at tjekke MX for e-post-domæner" #: ../ui/gurlchecker.glade.h:69 msgid "Check this option to check for e-mails syntax" msgstr "Afkryds denne indstilling for at tjekke for e-post-syntaks" #: ../ui/gurlchecker.glade.h:70 msgid "Check this option to check secure URLs too" msgstr "Afkryds denne indstilling for også at tjekke sikre internetadresser" #: ../ui/gurlchecker.glade.h:71 msgid "Check this option to enable CSS validation" msgstr "Afkryds denne indstilling for at aktivere CSS-validering" #: ../ui/gurlchecker.glade.h:72 msgid "Check this option to enable HTML validation" msgstr "Afkryds denne indstilling for at aktivere HTML-validering" #: ../ui/gurlchecker.glade.h:73 msgid "Check this option to enable W3C validation" msgstr "Afkryds denne indstilling for at aktivere W3C-validering" #: ../ui/gurlchecker.glade.h:74 msgid "Check this option to enable detection of uncommon files extensions" msgstr "" "Afkryds denne indstilling for at aktivere registrering af usædvanlige filers " "filendelser" #: ../ui/gurlchecker.glade.h:75 msgid "Check this option to enable security checks" msgstr "Afkryds denne indstilling for at aktivere sikkerhedstjek" #: ../ui/gurlchecker.glade.h:76 msgid "Check this option to enable virus scan of pages content" msgstr "" "Afkryds denne indstilling for at aktivere virusskanning af siders indhold" #: ../ui/gurlchecker.glade.h:77 msgid "Check this option to export links label" msgstr "Afkryds denne indstilling for at eksportere henvisningers etiket" #: ../ui/gurlchecker.glade.h:78 msgid "Check this option to export links labels" msgstr "Afkryds denne indstilling for at eksportere henvisningers etiketter" #: ../ui/gurlchecker.glade.h:79 msgid "Check this option to export only external links" msgstr "Afkryds denne indstilling for kun at eksportere eksterne henvisninger" #: ../ui/gurlchecker.glade.h:80 msgid "" "Check this option to ignore servers that do not respond after more than n " "tries" msgstr "" "Afkryds denne indstilling for at ignorere servere som ikke svarer efter mere " "end x forsøg" #: ../ui/gurlchecker.glade.h:81 msgid "" "Check this option to retreive content of documents other than HTML pages and " "images: PDF, tarballs..." msgstr "" "Afkryds denne indstilling for at indhente indhold af dokumenter udover HTML-" "sider og billeder: PDF, tarball..." #: ../ui/gurlchecker.glade.h:82 msgid "Check this option to retreive images content for local preview" msgstr "" "Afkryds denne indstilling for at indhente billedindhold til lokal " "forhåndsvisning" #: ../ui/gurlchecker.glade.h:83 msgid "Check this option to scan only one page" msgstr "Afkryds denne indstilling for kun at skanne en side" #: ../ui/gurlchecker.glade.h:84 msgid "Choose a location" msgstr "Vælg et sted" #: ../ui/gurlchecker.glade.h:85 msgid "Clear export history" msgstr "Ryd eksporthistorik" #: ../ui/gurlchecker.glade.h:86 msgid "Clear project history" msgstr "Ryd projekthistorik" #: ../ui/gurlchecker.glade.h:87 msgid "Clear search history" msgstr "Ryd søgehistorik" #: ../ui/gurlchecker.glade.h:88 msgid "Collapse all the list" msgstr "Sammenklap hele listen" #: ../ui/gurlchecker.glade.h:89 msgid "Consider as error" msgstr "Betragt som fejl" #: ../ui/gurlchecker.glade.h:90 msgid "Consider that the code is not W3C compliant if it contains:" msgstr "Anse koden for ikke at være W3C-kompliant hvis den indeholder:" #: ../ui/gurlchecker.glade.h:91 msgid "Cookie" msgstr "Cookie" #: ../ui/gurlchecker.glade.h:92 msgid "Cookies" msgstr "Cookier" #: ../ui/gurlchecker.glade.h:93 msgid "DEBUG mode" msgstr "FEJLSØGNINGS-tilstand" #: ../ui/gurlchecker.glade.h:94 msgid "Debug" msgstr "Fejlsøg" #: ../ui/gurlchecker.glade.h:95 msgid "Delete project" msgstr "Slet projekt" #: ../ui/gurlchecker.glade.h:96 msgid "Description:" msgstr "Beskrivelse:" #: ../ui/gurlchecker.glade.h:97 msgid "Directories" msgstr "Mapper" #: ../ui/gurlchecker.glade.h:98 msgid "Display tooltips" msgstr "Vis værktøjstips" #: ../ui/gurlchecker.glade.h:99 msgid "Do not accept any cookies" msgstr "Accepter ikke cookier" #: ../ui/gurlchecker.glade.h:100 msgid "Do not display this dialog anymore" msgstr "Vis ikke denne dialog igen" #: ../ui/gurlchecker.glade.h:101 msgid "Do not retrieve page content (speed up the check)" msgstr "Hent ikke sidens indhold (gør undersøgelsen hurtigere)" #: ../ui/gurlchecker.glade.h:102 msgid "Document" msgstr "Dokument" #: ../ui/gurlchecker.glade.h:103 msgid "" "Document extensions to ignore, separated by comma.\n" "Ex.: asp,aspx,exe,pif" msgstr "" "Dokumentendelser der skal ignoreres, adskilt af komma.\n" "Eksempler: asp,aspx,exe,pif" #: ../ui/gurlchecker.glade.h:105 msgid "Documents" msgstr "Dokumenter" #: ../ui/gurlchecker.glade.h:106 msgid "Domains" msgstr "Domæner" #: ../ui/gurlchecker.glade.h:107 msgid "Dump link properties while checking" msgstr "Smid henvisningsegenskaber under undersøgelsen" #: ../ui/gurlchecker.glade.h:108 msgid "Dynamic values" msgstr "Dynamiske værdier" #: ../ui/gurlchecker.glade.h:110 msgid "E-Mails" msgstr "E-post" #: ../ui/gurlchecker.glade.h:111 msgid "E-Mails syntax" msgstr "E-post-syntaks" #: ../ui/gurlchecker.glade.h:112 msgid "Enter a URL to check" msgstr "Skriv den internetadresse der skal tjekkes" #: ../ui/gurlchecker.glade.h:113 msgid "Enter a local file path or URL to check" msgstr "Indtast en lokal filsti eller internetadresse der skal tjekkes" #: ../ui/gurlchecker.glade.h:114 msgid "Errors" msgstr "Fejl" #: ../ui/gurlchecker.glade.h:115 msgid "Exclude images" msgstr "Ekskluder billeder" #: ../ui/gurlchecker.glade.h:116 msgid "Expand all the list" msgstr "Udfold hele listen" # Eksport eller Eksporter #: ../ui/gurlchecker.glade.h:117 msgid "Export" msgstr "Eksporter" #: ../ui/gurlchecker.glade.h:118 msgid "Files" msgstr "Filer" #: ../ui/gurlchecker.glade.h:119 msgid "Filters" msgstr "Filtre" #: ../ui/gurlchecker.glade.h:120 msgid "" "First part of the mime-type of files to check for virus, separated by " "comma.\n" "Ex.: application,audio,image,text,video,x-world" msgstr "" "Første del af mime-typen på filer der skal tjekkes for virus, adskilt af " "komma.\n" "F.eks.: application,audio,image,text,video,x-world" #: ../ui/gurlchecker.glade.h:122 msgid "Frame" msgstr "Ramme" #: ../ui/gurlchecker.glade.h:123 msgid "General" msgstr "Generelt" #: ../ui/gurlchecker.glade.h:125 msgid "" "HTML extensions to check, separated by comma.\n" "Ex.: php,html,htm,pl" msgstr "" "HTML-filendelser der skal tjekkes, adskilt af komma.\n" "F.eks.: php,html,htm,pl" #: ../ui/gurlchecker.glade.h:127 msgid "History" msgstr "Historik" #: ../ui/gurlchecker.glade.h:128 msgid "IP address" msgstr "IP-adresse" #: ../ui/gurlchecker.glade.h:129 msgid "Ignore URLs arguments" msgstr "Ignorer argumenter for internetadresser" #: ../ui/gurlchecker.glade.h:130 msgid "Ignore this item" msgstr "Ignorer dette punkt" #: ../ui/gurlchecker.glade.h:132 msgid "" "Image extensions to ignore, separated by comma.\n" "Ex.: gif,png" msgstr "" "Filendelser for billede der skal ignoreres, adskilt af komma.\n" "Eksempler: gif, png" #: ../ui/gurlchecker.glade.h:134 msgid "Image preview" msgstr "Forhåndsvisning af billede" #: ../ui/gurlchecker.glade.h:135 msgid "Images" msgstr "Billeder" #: ../ui/gurlchecker.glade.h:136 msgid "Labels export" msgstr "Eksport af etiketter" #: ../ui/gurlchecker.glade.h:137 msgid "Link update" msgstr "Opdaterer henvisning" #: ../ui/gurlchecker.glade.h:138 msgid "Links" msgstr "Henvisninger" #: ../ui/gurlchecker.glade.h:139 msgid "Links name" msgstr "Henvisningsnavne" #: ../ui/gurlchecker.glade.h:140 msgid "Local file" msgstr "Lokal fil" #: ../ui/gurlchecker.glade.h:141 msgid "Location:" msgstr "Sted:" #: ../ui/gurlchecker.glade.h:142 msgid "Login : " msgstr "Logind : " #: ../ui/gurlchecker.glade.h:143 msgid "META tags content" msgstr "META-informationer" #: ../ui/gurlchecker.glade.h:145 msgid "Max depth of levels to check:" msgstr "Maksimal undersøgelsesdybde:" #: ../ui/gurlchecker.glade.h:146 msgid "Network" msgstr "Netværk" #: ../ui/gurlchecker.glade.h:147 msgid "New" msgstr "Ny" #: ../ui/gurlchecker.glade.h:148 msgid "New bookmarks project" msgstr "Nyt bogmærkeprojekt" #: ../ui/gurlchecker.glade.h:149 msgid "New instance" msgstr "Nyt vindue" #: ../ui/gurlchecker.glade.h:150 msgid "New local file project" msgstr "Nyt lokalt filprojekt" #: ../ui/gurlchecker.glade.h:151 msgid "New project" msgstr "Nyt projekt" #: ../ui/gurlchecker.glade.h:152 msgid "New web project" msgstr "Nyt internetprojekt" #: ../ui/gurlchecker.glade.h:153 msgid "Numbering" msgstr "Nummerering" #: ../ui/gurlchecker.glade.h:154 msgid "Only check local links" msgstr "Undersøg kun lokale henvisninger" #: ../ui/gurlchecker.glade.h:155 msgid "Only check this directory and its subdirectories" msgstr "Undersøg kun denne mappe og dens undermapper" #: ../ui/gurlchecker.glade.h:156 msgid "Only external links" msgstr "Kun eksterne henvisninger" #: ../ui/gurlchecker.glade.h:157 msgid "Open" msgstr "Åbn" #: ../ui/gurlchecker.glade.h:158 msgid "Open a project" msgstr "Åbn et projekt" #: ../ui/gurlchecker.glade.h:159 msgid "Open project" msgstr "Åbn projekt" #: ../ui/gurlchecker.glade.h:160 msgid "Page content" msgstr "Sideindhold" #: ../ui/gurlchecker.glade.h:161 msgid "Page information" msgstr "Sideinformation" #: ../ui/gurlchecker.glade.h:162 msgid "Page properties" msgstr "Sideegenskaber" #: ../ui/gurlchecker.glade.h:163 msgid "Parent update" msgstr "Opdater overordnet" #: ../ui/gurlchecker.glade.h:164 msgid "Password : " msgstr "Adgangskode: " #: ../ui/gurlchecker.glade.h:165 msgid "Personal data" msgstr "Personlige data" #: ../ui/gurlchecker.glade.h:166 msgid "Project properties" msgstr "Projektegenskaber" #: ../ui/gurlchecker.glade.h:167 msgid "Prompt for authentication" msgstr "Spørg om godkendelse" #: ../ui/gurlchecker.glade.h:168 msgid "Protocols" msgstr "Protokoller" #: ../ui/gurlchecker.glade.h:169 msgid "Refuse" msgstr "Nægt" #: ../ui/gurlchecker.glade.h:170 msgid "Remove all 404 links" msgstr "Fjern alle 404 links (404-henvisninger)" #: ../ui/gurlchecker.glade.h:171 msgid "Report export" msgstr "Rapporter eksport" #: ../ui/gurlchecker.glade.h:172 msgid "Retrieve content of non HTML files" msgstr "Indhent indholdet af filer der ikke er i HTML-format" #: ../ui/gurlchecker.glade.h:173 msgid "Retrieve images content" msgstr "Hent billedindhold" #: ../ui/gurlchecker.glade.h:174 msgid "Save" msgstr "Gem" #: ../ui/gurlchecker.glade.h:175 msgid "Save bookmarks" msgstr "Gem bogmærker" #: ../ui/gurlchecker.glade.h:176 msgid "Save report in..." msgstr "Gem rapport i..." #: ../ui/gurlchecker.glade.h:177 msgid "Search in progress..." msgstr "Søgning i gang..." #: ../ui/gurlchecker.glade.h:178 msgid "Search..." msgstr "Søg..." #: ../ui/gurlchecker.glade.h:179 msgid "Security" msgstr "Sikkerhed" #: ../ui/gurlchecker.glade.h:180 msgid "Security alerts" msgstr "Sikkerhedsalarmer" #: ../ui/gurlchecker.glade.h:181 msgid "Similar link locations" msgstr "Lignende henvisningssteder" #: ../ui/gurlchecker.glade.h:182 msgid "Status code" msgstr "Statuskode" #: ../ui/gurlchecker.glade.h:183 msgid "Stylesheet" msgstr "Stilark" #: ../ui/gurlchecker.glade.h:185 msgid "This option will only be active for Web site projects." msgstr "Denne indstilling vil kun være aktiv for internetsideprojekter." #: ../ui/gurlchecker.glade.h:186 msgid "Those choices will override [Filters/Documents]." msgstr "De valg vil blive overskrevet [Filtre/dokumenter]." #: ../ui/gurlchecker.glade.h:187 msgid "" "Time to wait between two checks, \n" "in second:" msgstr "" "Ventetid mellem to undersøgelser, \n" "i sekunder:" #: ../ui/gurlchecker.glade.h:189 msgid "Timeout in seconds:" msgstr "Udløb af tid i sekunder:" #: ../ui/gurlchecker.glade.h:190 msgid "Timeout:" msgstr "Udløb af tid:" #: ../ui/gurlchecker.glade.h:192 msgid "Title:" msgstr "Titel:" #: ../ui/gurlchecker.glade.h:193 msgid "Uncheck this option to check external links too" msgstr "" "Fjern kryds ved denne indstilling for også at tjekke eksterne henvisninger" #: ../ui/gurlchecker.glade.h:194 msgid "Uncheck this option to check external pages too" msgstr "Fjern kryds ved denne indstilling for også at tjekke eksterne sider" #: ../ui/gurlchecker.glade.h:195 msgid "Update all children for this link" msgstr "Opdater alle undersider for denne henvisning" #: ../ui/gurlchecker.glade.h:196 msgid "Update all links..." msgstr "Opdater alle henvisninger..." #: ../ui/gurlchecker.glade.h:197 msgid "Update main page..." msgstr "Opdater hovedsiden..." #: ../ui/gurlchecker.glade.h:198 msgid "Update page containing this link" msgstr "Opdater den side der indeholder denne henvisning" #: ../ui/gurlchecker.glade.h:199 msgid "Update this link" msgstr "Opdater denne henvisning" #: ../ui/gurlchecker.glade.h:200 msgid "" "Updating report's counters\n" "\n" "Please wait..." msgstr "" "Opdaterer rapportens optællinger\n" "\n" "Vent venligst..." #: ../ui/gurlchecker.glade.h:204 msgid "Use passive mode" msgstr "Brug passiv tilstand" #: ../ui/gurlchecker.glade.h:205 msgid "View all link locations" msgstr "Vis alle henvisningssteder" #: ../ui/gurlchecker.glade.h:206 msgid "View bad extensions" msgstr "Vis ugyldige filendelser" #: ../ui/gurlchecker.glade.h:207 msgid "View online" msgstr "Vis online" #: ../ui/gurlchecker.glade.h:208 msgid "View parent page online" msgstr "Vis overside online" #: ../ui/gurlchecker.glade.h:210 msgid "Viruses" msgstr "Vira" #: ../ui/gurlchecker.glade.h:211 msgid "W3C alerts" msgstr "W3C-alarmer" #: ../ui/gurlchecker.glade.h:212 msgid "W3C validation" msgstr "W3C-validering" #: ../ui/gurlchecker.glade.h:213 msgid "Wait" msgstr "Vent" #: ../ui/gurlchecker.glade.h:214 msgid "Warnings" msgstr "Advarsler" #: ../ui/gurlchecker.glade.h:215 msgid "Web site" msgstr "Internetsted" # engelsk fejl Wen #: ../ui/gurlchecker.glade.h:216 #, fuzzy msgid "When a cookie is added" msgstr "Når en cookie tilføjes" #: ../ui/gurlchecker.glade.h:217 msgid "When a cookie is deleted" msgstr "Når en cookie slettes" #: ../ui/gurlchecker.glade.h:218 msgid "When a cookie is updated" msgstr "Når en cookie opdateres" #: ../ui/gurlchecker.glade.h:219 msgid "Will remove any bookmark pointing to non existent page" msgstr "Vil fjerne alle bogmærker der peger mod en ikkeeksisterende side" #: ../ui/gurlchecker.glade.h:220 msgid "With SSL (HTTPS)" msgstr "Med SSL (HTTPS)" #: ../ui/gurlchecker.glade.h:221 msgid "_Display" msgstr "_Vis" #: ../ui/gurlchecker.glade.h:222 msgid "_Edit" msgstr "_Rediger" #: ../ui/gurlchecker.glade.h:223 msgid "_File" msgstr "_Fil" #: ../ui/gurlchecker.glade.h:224 msgid "_Help" msgstr "_Hjælp" #: ../ui/gurlchecker.glade.h:225 msgid "_Project" msgstr "_Projekt" #: ../ui/gurlchecker.glade.h:226 msgid "attemps" msgstr "forsøg" #: ../ui/gurlchecker.glade.h:227 msgid "gURLChecker Preferences" msgstr "Indstillinger for gURLChecker" #: ../ui/gurlchecker.glade.h:228 msgid "gURLChecker use the libclamav library to scan files for viruses" msgstr "gURLChecker bruger bliblioteket libclamav til at skanne filer for vira" #: ../ui/gurlchecker.glade.h:229 msgid "gURLChecker use the libcroco library to validate CSS2 stylesheets" msgstr "gURLChecker bruger biblioteket libcroco til at validere CSS2-stilark" #: ../ui/gurlchecker.glade.h:230 msgid "gURLChecker use the libtidy library to validate HTML pages" msgstr "gURLChecker kan bruge biblioteket libtidy til at validere HTML-sider" #: ../ui/gurlchecker.glade.h:231 msgid "second(s), between checks." msgstr "sekunder mellem tjekkene." #: ../ui/gurlchecker.glade.h:232 msgid "second(s)." msgstr "sekunder." gurlchecker-0.13.1/po/POTFILES.skip0000644000175000017500000000000010744343152013537 00000000000000gurlchecker-0.13.1/ltmain.sh0000755000175000017500000073337711530645257012672 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2" TIMESTAMP="" package_revision=1.3017 # 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+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # 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+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 gurlchecker-0.13.1/Makefile.am0000644000175000017500000000157311275575704013072 00000000000000## Process this file with automake to produce Makefile.in SUBDIRS = src stylesheets po doc ui man1_MANS = gurlchecker.1 ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ $(DESKTOP_IN_FILES) \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ $(PACKAGE).1 \ FAQ \ CONTRIBUTORS CLEANFILES = *~ DISTCLEANFILES = \ $(DESKTOP_DATA) \ intltool-extract \ intltool-update \ intltool-merge MAINTAINERCLEANFILES = \ aclocal.m4 \ config.h.in \ config.guess \ config.sub \ depcomp \ configure \ install-sh \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ ltmain.sh \ missing \ mkinstalldirs \ Makefile.in \ $(PACKAGE)-*.tar.gz DESKTOP_IN_FILES = gurlchecker.desktop.in @INTLTOOL_DESKTOP_RULE@ DESKTOPdir = $(datadir)/applications DESKTOP_DATA = $(DESKTOP_IN_FILES:.desktop.in=.desktop) licensedir = $(datadir)/doc/$(PACKAGE) license_DATA = COPYING gurlchecker-0.13.1/doc/0000755000175000017500000000000011530645400011636 500000000000000gurlchecker-0.13.1/doc/gurlchecker-sections.txt0000644000175000017500000003675011334342467016466 00000000000000
uc_application_get_urls_user_action uc_application_get_urls_user_action_by_value uc_application_urls_user_actions_init general UC_DISPLAY_PROTO_IS UC_DISPLAY_PROTO_IS_NONE UC_DISPLAY_PROTO_SET UC_DISPLAY_PROTO_SET_NONE UC_DISPLAY_PROTO_UNSET UC_DISPLAY_SET_ALL UC_DISPLAY_STATUS_IS UC_DISPLAY_STATUS_IS_NONE UC_DISPLAY_STATUS_SET UC_DISPLAY_STATUS_SET_NONE UC_DISPLAY_STATUS_UNSET UC_DISPLAY_TYPE_IS UC_DISPLAY_TYPE_IS_NONE UC_DISPLAY_TYPE_SET UC_DISPLAY_TYPE_SET_NONE UC_DISPLAY_TYPE_UNSET UC_BUFFER_DATETIME_LEN UC_SYSTEM_NAME UC_VERSION UC_UPDATE_UI UC_GLADE_XML_FILENAME UC_STYLESHEETS_DIR UC_PIXMAPS_DIR UC_DIALOG_SETTINGS_DOCUMENT_TYPES_MAX_COLS UC_CHECK_BUTTON_MAX_DISPLAY UC_CHECK_MESSAGE_LABEL_FIRST UC_CHECK_MESSAGE_LABEL_SECOND UC_CHECK_MESSAGE_LABEL_THIRD UC_STATUS_CODE_INTERNALS_LIMIT UC_STATUS_CODE_BAD_METHOD UC_STATUS_CODE_PAGE_OK UC_STATUS_CODE_NO_DATA UC_STATUS_CODE_MOVED_PERMANENTLY UC_STATUS_CODE_REDIRECTED UC_STATUS_CODE_REDIRECTED_SEE_OTHER UC_STATUS_CODE_RESTRICTED UC_STATUS_CODE_PAGE_NOT_FOUND UC_STATUS_CODE_TIMEOUT UC_STATUS_CODE_FTP_MAX_CLIENTS UC_STATUS_CODE_UNKNOWN UC_STATUS_CODE_IGNORED_LINK UC_STATUS_CODE_MALFORMED_LINK UC_STATUS_CODE_FILE_PROTO_ERROR UC_STATUS_CODE_BAD_EMAIL_LINK UC_STATUS_CODE_BAD_EMAIL_LINK_MX UC_STATUS_CODE_GOOD_EMAIL_LINK UC_STATUS_CODE_FTP_OK UC_STATUS_CODE_FTP_BAD UC_SET_COOKIE UC_IGNORED_LINK_BGCOLOR UC_BAD_LINK_BGCOLOR UC_GOOD_LINK_BGCOLOR UC_TIMEOUT_LINK_BGCOLOR UC_MALFORMED_LINK_BGCOLOR UC_HOST_UNREACHABLE_LINK_BGCOLOR UC_NO_DATA_LINK_BGCOLOR UC_RESTRICTED_LINK_BGCOLOR UC_FILE_ERROR_LINK_BGCOLOR UC_BAD_EMAIL_LINK_BGCOLOR UC_GOOD_EMAIL_LINK_BGCOLOR UC_CHECK_PROTOCOLS_ACCEPTED UC_CHECK_PROTOCOLS_ACCEPTED_LEN UC_CHECK_PROTOCOLS_GET_ACCEPTED UC_SPLIT_DELIMITER UC_DEFAULT_SECURITY_BAD_EXTENSIONS UC_DEFAULT_SECURITY_VIRII_EXTENSIONS UC_DEFAULT_W3C_HTML_EXTENSIONS UC_DEFAULT_W3C_CSS_EXTENSIONS UC_LABEL_DISPLAY_MAX_LEN UC_DEFAULT_WEB_BROWSER_PATH WSENS UC_GET_WIDGET UC_SET_WIDGET WGET UC_BUFFER_LEN UC_BUFFER_DATE_LEN UC_HEADER_STATUS_CODE_LEN UC_HEADER_STATUS_CODE_FIRST_POS UC_PROTOCOL_FTP UC_PROTOCOL_HTTP UC_PROTOCOL_HTTPS UC_PROTOCOL_MAILTO UC_PROTOCOL_FILE UC_CONTENT_TYPE UC_CONTENT_TYPE_FTP UC_CONTENT_LENGTH UC_LAST_MODIFIED UC_CONTENT_TYPE_HTML UC_CONTENT_TYPE_CSS UC_HEADER_STATUS UC_CONTENT_LOCATION UC_LOCATION UC_SERVER UC_URL_DEFAULT_PORT UC_URL_DEFAULT_SSL_PORT UC_URL_DEFAULT_FTP_PORT UC_SOCKET_OPEN_FORCE_ARGS_USE UC_SOCKET_OPEN_DEFAULT UC_TOOLTIPS_DELAY_DEFAULT UC_CHECK_WAIT_DEFAULT UC_CHECK_TIMEOUT_DEFAULT UC_MAX_DEPTH_LEVEL UC_TIMEOUTS_BLOCKED_DEFAULT UC_USER_AGENT UCStatusCode UCHTMLTag UCLinkProperties UC_WWW_AUTHENTICATE UC_STATUS_CODE_HOST_IS_UNREACHABLE statfs
callbacks on_urls_list_cursor_changed on_url_list_mouse_clicked on_search_list_cursor_changed on_main_treeview_motion_notify_event on_main_treeview_enter_notify_event on_main_treeview_leave_notify_event
utils uc_utils_str_is_not_alphanum uc_utils_swap_file_proto_option uc_utils_clear_container uc_utils_http_atotm uc_utils_url_reencode_escapes uc_utils_ftp_code_search uc_utils_get_string_from_size uc_utils_get_server_from_header_field uc_utils_copy uc_utils_get_meta_refresh_location uc_utils_to_utf8 uc_utils_copy_files uc_utils_debug uc_utils_debug_dump_link_properties uc_utils_set_userfriendly_treeview_column uc_utils_get_file_content uc_utils_split_email uc_utils_get_mx uc_utils_get_yesno uc_utils_mx_is_valid uc_utils_get_ip uc_utils_email_is_valid uc_utils_string_cut uc_utils_string_format4display uc_utils_replace uc_utils_replace1 uc_utils_replacelr uc_utils_convert_uid2file uc_utils_get_gnome_proxy_conf uc_utils_clean_tag_link_value uc_utils_search_string_next uc_utils_memcasecmp uc_utils_rmfiles uc_utils_mkdirs uc_utils_rmdirs uc_utils_vector_length uc_utils_strpbrk_or_eos uc_utils_strdup_delim uc_utils_test_socket_open uc_utils_get_gnome_browser_conf uc_utils_get_auth_fields uc_utils_build_auth_line
cache uc_cache_change_id uc_cache_get_source uc_cache_append_source
html_parser uc_html_parser_get_tags uc_html_parser_node_new uc_html_parser_node_free uc_css_parser_get_tags
check UC_CHECK_PARSER_WHILE_CONDITION UC_CHECK_ABORT_IF_CONDITION UCHTTPCheckReturn uc_check_content_type_w3c_accepted uc_check_get_main_page_id uc_check_is_w3c_alert uc_check_run_w3c_checks uc_check_run_security_checks uc_check_refresh_report uc_check_set_depth uc_check_copy_node uc_check_is_main_page uc_check_get_link_type_icon_path uc_check_get_link_type_label uc_check_refresh_link uc_check_refresh_link_real uc_check_refresh_link_get_value uc_check_refresh_link_set_value uc_check_get_link_type_for_icon uc_check_get_link_type_icon uc_check_currentitem_init uc_check_wait uc_check_link_already_checked_with_insert uc_check_register_link uc_check_link_get_properties uc_check_link_properties_node_new uc_check_mx_is_valid uc_check_status_is_ignored uc_check_status_is_good uc_check_status_is_bad uc_check_status_is_malformed uc_check_status_is_timeout uc_check_status_is_email uc_check_suspend_continue uc_check_cancel_get_value uc_check_suspend_get_value uc_check_ignore_item_get_value uc_check_treeview_get_selected_row_id uc_check_web_begin uc_check_bookmarks_begin uc_check_cancel_set_value uc_check_ignore_item_set_value uc_check_display_items_active_all uc_check_display_list uc_check_reset uc_check_alarm_callback uc_check_link_view_source
ucclam UCClam uc_ucclam_new uc_ucclam_scan uc_ucclam_free
uctidy UCTidy uc_uctidy_new uc_uctidy_validate uc_uctidy_free
uccroco UCCroco uc_uccroco_new uc_uccroco_validate uc_uccroco_free
web_site uc_web_site_get_links_real uc_web_site_refresh_parent uc_web_site_refresh_all uc_web_site_refresh_branch uc_web_site_refresh_link uc_web_site_begin_check
bookmarks uc_bookmarks_delete_bad_links uc_bookmarks_format_is_firefox uc_bookmarks_free uc_bookmarks_guess_type uc_bookmarks_save_changes uc_bookmarks_delete_link uc_bookmarks_format_is_xbel uc_bookmarks_begin_check
url uc_url_is_faked uc_url_extract_url_from_local_path uc_url_correction uc_url_normalize uc_url_get_hostname uc_url_get_port uc_url_add_protocol uc_url_add_slash uc_url_is_valid uc_url_get_protocol uc_url_parse uc_url_get_ip
application UCURLsUserActions uc_application_main_tree_apply_filters uc_application_reset_menu_protocols uc_application_reset_menu_status uc_application_reset_menu_types uc_application_get_urls_user_action uc_application_get_urls_user_action_by_value uc_application_urls_user_actions_init uc_application_cookie_warning_dialog_show uc_application_w3c_validate uc_application_buffer_show uc_application_build_projects_treeview uc_application_input_dialog uc_application_input_file_dialog uc_application_view_bad_extensions_dialog_show uc_application_set_status_bar uc_application_open_project_dialog_show uc_application_project_information_dialog_show uc_application_progress_dialog_set_modal uc_application_treeview_get_selected_iter uc_application_build_url_treeview uc_application_main_tree_display_all uc_application_main_tree_collapse_all uc_application_main_tree_expand_all uc_application_main_tree_display_branch uc_application_display_search_message uc_application_dialog_yes_no_show uc_application_search_dialog_show uc_application_new_search_dialog_show uc_application_add_filter_directory_add uc_application_add_filter_domain_add uc_application_add_filter_domain_remove uc_application_add_filter_directory_remove uc_application_add_filter_directory_dialog_show uc_application_page_information_dialog_show uc_application_display_state_message uc_application_display_informations uc_application_treeview_activate_popup uc_application_view_similar_links_dialog_show uc_application_new_instance_launch uc_application_launch_web_browser uc_application_menu_set_sensitive_all uc_application_proxy_frame_control_sensitive uc_application_make_paths uc_application_remove_paths uc_application_view_source_dialog_show uc_application_view_image_dialog_show uc_application_dialog_show uc_application_globals_init uc_application_init uc_application_quit uc_application_draw_main_frames uc_application_search_get_data uc_application_get_bookmarks_project_data uc_application_new_web_dialog_show uc_application_new_local_file_dialog_show uc_application_new_bookmarks_dialog_show uc_application_open_dialog_show uc_application_about_dialog_show uc_application_progress_dialog_show uc_application_settings_dialog_show uc_application_settings_get_data uc_application_status_code_properties_init uc_application_get_status_code_properties uc_application_project_get_data uc_application_auth_dialog_show
cookies uc_cookies_add uc_cookies_free uc_cookies_get_header_field
report uc_report_export uc_check_report_force_values uc_check_html_is_valid uc_check_url_get_content uc_report_get_ignoredlinks uc_report_get_checkedlinks uc_report_get_badlinks uc_report_get_malformedlinks uc_report_get_goodlinks uc_report_get_timedoutlinks uc_report_get_alllinks uc_report_get_elapsedtime uc_report_timer_callback uc_report_set_elapsedtime uc_report_set_timedoutlinks uc_report_set_alllinks uc_report_set_checkedlinks uc_report_display_update uc_report_set_badlinks uc_report_set_malformedlinks uc_check_report_reset uc_report_set_goodlinks uc_report_set_ignoredlinks
lists uc_lists_checked_links_dump uc_lists_refresh_preserved_links_reset uc_lists_refresh_preserved_links_append uc_lists_refresh_preserved_links_restore uc_lists_links_first_minus_second uc_lists_similar_links_remove_item uc_lists_similar_links_remove_items uc_lists_already_checked_links_remove_branch_items uc_lists_already_checked_links_remove uc_lists_already_checked_links_remove_items uc_lists_checked_links_node_replace uc_lists_already_checked_links_lookup uc_lists_already_checked_links_append uc_lists_already_checked_free uc_lists_checked_links_is_empty uc_lists_checked_links_set uc_lists_checked_links_get uc_lists_checked_links_node_free uc_lists_checked_links_lookup uc_lists_checked_links_exist uc_lists_checked_links_lookup_by_uid uc_lists_checked_links_free uc_lists_similar_links_exist uc_lists_similar_links_append
connection uc_conn_init uc_server_get_response
timeout uc_timeout_domains_init uc_timeout_domains_free uc_timeout_domains_register uc_timeout_domains_is_blocked
search uc_search_get_exit uc_search_set_exit uc_search_main_select uc_search_check_verification uc_search_free uc_search_begin
project UCProjectType uc_project_get_bookmarks_type uc_project_get_check_is_bookmarks uc_project_set_bookmarks_type uc_project_get_cookies uc_project_set_cookies uc_project_report_save uc_project_get_check_is_main uc_project_set_check_is_main uc_project_get_w3c_checks uc_project_set_w3c_checks uc_project_save_all uc_project_set_security_checks uc_project_get_security_checks uc_project_get_export_numbering uc_project_set_export_labels uc_project_get_export_labels uc_project_set_export_numbering uc_project_get_report_export_path uc_project_get_security_virii_extensions uc_project_set_security_bad_extensions uc_project_set_w3c_html_level uc_project_set_w3c_css_extensions uc_project_set_security_virii_extensions uc_project_get_security_bad_extensions uc_project_get_w3c_html_extensions uc_project_projects_list_load uc_project_get_w3c_html_level uc_project_set_w3c_html_extensions uc_project_get_w3c_css_extensions uc_project_set_report_export_path uc_project_set_cookies_warn_updated uc_project_get_prompt_auth uc_project_set_prompt_auth uc_project_get_cookies_warn_added uc_project_set_cookies_warn_added uc_project_get_cookies_warn_updated uc_project_get_cookies_warn_deleted uc_project_set_cookies_warn_deleted uc_project_get_cookies_accept uc_project_set_cookies_accept uc_project_xml_load_settings uc_project_general_settings_save uc_project_save_index uc_project_delete uc_project_treeview_get_selected_row_id uc_project_get_type_icon uc_project_open uc_project_display_informations uc_project_get_projects_list uc_project_save_properties uc_project_save uc_project_free uc_project_new uc_project_get_reject_directories uc_project_get_reject_domains uc_project_get_reject_documents uc_project_get_reject_images uc_project_set_reject_directories uc_project_set_reject_documents uc_project_set_reject_images uc_project_set_reject_domains uc_project_get_type uc_project_get_title uc_project_get_description uc_project_get_save_bookmarks uc_project_get_save uc_project_get_local_charset uc_project_get_check_is_current uc_project_get_url uc_project_get_id uc_project_get_speed_check uc_project_get_bookmarks_file uc_project_get_timeouts_blocked uc_project_get_current_host uc_project_speed_check_get_download_content uc_project_get_current_port uc_project_get_proxy_host uc_project_get_working_path uc_project_get_chroot_path uc_project_get_cache_name uc_project_get_stylesheet_check uc_project_get_stylesheet_validate uc_project_get_proto_file_is_error uc_project_get_proto_file_check uc_project_get_proto_mailto uc_project_get_proto_https uc_project_get_proto_ftp uc_project_get_passive_ftp uc_project_get_proto_mailto_check_mx uc_project_get_check_wait uc_project_get_depth_level uc_project_get_check_chroot uc_project_get_limit_local uc_project_get_use_proxy uc_project_get_proxy_port uc_project_get_download_images_content uc_project_get_download_archives_content uc_project_get_check_timeout uc_project_get_debug_mode uc_project_get_dump_properties uc_project_get_tooltips_delay uc_project_get_onsave uc_project_get_browser_path uc_project_get_no_urls_args uc_project_speed_check_set_download_content uc_project_set_speed_check uc_project_set_onsave uc_project_set_type uc_project_set_id uc_project_set_title uc_project_set_description uc_project_set_save_bookmarks uc_project_set_timeouts_blocked uc_project_set_save uc_project_set_local_charset uc_project_set_check_is_current uc_project_set_url uc_project_set_bookmarks_file uc_project_set_current_host uc_project_set_current_port uc_project_set_check_wait uc_project_set_depth_level uc_project_set_working_path uc_project_set_cache_name uc_project_set_proto_file_is_error uc_project_set_stylesheet_check uc_project_set_stylesheet_validate uc_project_set_proto_file_check uc_project_set_proto_mailto uc_project_set_proto_https uc_project_set_proto_ftp uc_project_set_passive_ftp uc_project_set_proto_mailto_check_mx uc_project_set_check_chroot uc_project_set_limit_local uc_project_set_use_proxy uc_project_set_proxy_host uc_project_set_proxy_port uc_project_set_chroot_path uc_project_set_download_images_content uc_project_set_download_archives_content uc_project_set_check_timeout uc_project_set_debug_mode uc_project_set_dump_properties uc_project_set_tooltips_delay uc_project_set_browser_path uc_project_set_no_urls_args uc_project_set_auth_line uc_project_get_auth_line
tooltips uc_tooltips_main_set_display uc_tooltips_main_get_display uc_tooltips_init uc_tooltips_main_set_mouse_coord uc_tooltips_main_get_current_id uc_tooltips_main_set_current_id uc_tooltips_main_get_last_id uc_tooltips_main_set_last_id uc_tooltips_main_get_mouse_coord uc_tooltips_main_set_frozen uc_tooltips_main_get_frozen uc_tooltips_main_destroy uc_tooltips_main_get_active uc_tooltips_main_set_active uc_tooltips_get_frozen
gurlchecker-0.13.1/doc/html/0000755000175000017500000000000011530645400012602 500000000000000gurlchecker-0.13.1/doc/Makefile.am0000644000175000017500000002016210744343152013620 00000000000000## Process this file with automake to produce Makefile.in # The name of the module, e.g. 'glib'. DOC_MODULE=gurlchecker # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. DOC_SOURCE_DIR=../src # Extra options to pass to gtkdoc-scanobj or gtkdoc-scangobj. SCANOBJ_OPTIONS= # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS= # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS=--sgml-mode # Extra options to supply to gtkdoc-fixref. FIXXREF_OPTIONS= # Used for dependencies. HFILE_GLOB= CFILE_GLOB= # Header files to ignore when scanning. IGNORE_HFILES= \ getopt.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). content_files = # Other files to distribute. extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = GTKDOC_LIBS = GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC) GTKDOC_LD=$(LIBTOOL) --mode=link $(CC) # If you need to override some of the declarations, place them in the # $(DOC_MODULE)-overrides.txt file and uncomment the second line here. DOC_OVERRIDES = #DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt ########################################################################### # Everything below here is generic and you shouldn't need to change it. ########################################################################### TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) EXTRA_DIST = \ $(content_files) \ $(extra_files) \ $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_OVERRIDES) DOC_STAMPS = \ scan-build.stamp \ tmpl-build.stamp \ sgml-build.stamp \ html-build.stamp \ $(srcdir)/tmpl.stamp \ $(srcdir)/sgml.stamp \ $(srcdir)/html.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS) MAINTAINERCLEANFILES = Makefile.in if ENABLE_GTK_DOC all-local: html-build.stamp #### scan #### scan-build.stamp: $(HFILE_GLOB) @echo '*** Scanning header files ***' if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null; \ then \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" \ gtkdoc-scanobj \ $(SCANOBJ_OPTIONS) \ --module=$(DOC_MODULE) \ --output-dir=$(srcdir) ; \ else \ cd $(srcdir) ; \ chmod u+w . ; \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi cd $(srcdir) && \ gtkdoc-scan \ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ --module=$(DOC_MODULE) \ --source-dir=$(DOC_SOURCE_DIR) \ --ignore-headers="$(IGNORE_HFILES)" touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp @true #### templates #### tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) @echo '*** Rebuilding template files ***' chmod u+w ${srcdir}/tmpl cd $(srcdir) && \ gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log @cd $(srcdir) && \ if grep "WARNING:" tmpl-build.log > /dev/null; then \ cat $(DOC_MODULE)-unused.txt ; \ exit 1; fi cd $(srcdir) && \ rm -f tmpl-build.log touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true #### xml #### sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) @echo '*** Building XML ***' test -d $(srcdir)/xml || mkdir $(srcdir)/xml chmod u+w $(srcdir)/xml cd $(srcdir) && \ gtkdoc-mkdb \ --module=$(DOC_MODULE) \ --source-dir=$(DOC_SOURCE_DIR) \ --main-sgml-file=$(DOC_MAIN_SGML_FILE) \ --output-format=xml \ $(MKDB_OPTIONS) # | tee xml-build.log # @if grep "WARNING:" sgml-build.log > /dev/null; then exit 1; fi # rm sgml-build.log touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo '*** Building HTML ***' if test -d $(srcdir)/html; then chmod u+w $(srcdir)/html ; rm -rf $(srcdir)/html; fi mkdir $(srcdir)/html chmod u+w $(srcdir)/html cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done @echo '-- Fixing Crossreferences' cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) touch html-build.stamp else all-local: endif ############## clean-local: rm -f *~ *.bak tmpl/*.bak if ENABLE_GTK_DOC rm -rf xml html endif rm -f $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) maintainer-clean-local: clean cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt distclean-local: clean rm -rf $(DOC_MODULE)-decl-list.txt rm -rf $(DOC_MODULE)-decl.txt rm -rf $(DOC_MODULE)-undocumented.txt rm -rf $(DOC_MODULE)-unused.txt rm -rf tmpl/*.sgml.bak rm -f $(DOC_MODULE).hierarchy rm -f *.stamp || true if test x"$(srcdir)" != x. ; then \ rm -f $(DOC_MODULE)-docs.sgml ; \ rm -f $(DOC_MODULE).types ; \ rm -f $(DOC_MODULE).interfaces ; \ rm -f $(DOC_MODULE).prerequisites ; \ rm -f $(DOC_MODULE)-sections.txt ; \ rm -rf tmpl/*.sgml ; \ fi rm -rf *.o if ENABLE_GTK_DOC install-data-local: $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) (installfiles=`echo $(srcdir)/html/*.html`; \ if test "$$installfiles" = '$(srcdir)/html/*.html'; \ then echo '-- Nothing to install' ; \ else \ for i in $$installfiles; do \ echo '-- Installing '$$i ; \ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ pngfiles=`echo ./html/*.png`; \ if test "$$pngfiles" != './html/*.png'; then \ for i in $$pngfiles; do \ echo '-- Installing '$$i ; \ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ fi; \ echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \ $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \ echo '-- Installing $(srcdir)/html/index.sgml' ; \ $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ fi) uninstall-local: (installfiles=`echo $(srcdir)/html/*.html`; \ if test "$$installfiles" = '$(srcdir)/html/*.html'; \ then echo '-- Nothing to uninstall' ; \ else \ for i in $$installfiles; do \ rmfile=`basename $$i` ; \ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ done; \ pngfiles=`echo $(srcdir)/html/*.png`; \ if test "$$pngfiles" != '$(srcdir)/html/*.png'; then \ for i in $$pngfiles; do \ rmfile=`basename $$i` ; \ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ done; \ fi; \ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \ rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \ rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ fi) if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi # # Require gtk-doc when making dist # dist-check-gtkdoc: else dist-check-gtkdoc: @echo "*** gtk-doc must be installed and enabled in order to make dist" @false endif dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl mkdir $(distdir)/xml mkdir $(distdir)/html -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl -cp $(srcdir)/xml/*.xml $(distdir)/xml -cp $(srcdir)/html/*.html $(distdir)/html -cp $(srcdir)/html/*.png $(distdir)/html -cp $(srcdir)/html/gurlchecker.devhelp $(distdir)/html images=$(HTML_IMAGES) ; \ for i in "" $$images ; do \ if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \ done .PHONY : dist-hook-local gurlchecker-0.13.1/doc/Makefile.in0000644000175000017500000005331111530645265013637 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLAMAV_FLAGS = @CLAMAV_FLAGS@ CLAMAV_LIBS = @CLAMAV_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROCO_CFLAGS = @CROCO_CFLAGS@ CROCO_FLAGS = @CROCO_FLAGS@ CROCO_LIBS = @CROCO_LIBS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNUTLS_FLAGS = @GNUTLS_FLAGS@ GNUTLS_LIBS = @GNUTLS_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_DOC_CFLAGS = @GTK_DOC_CFLAGS@ GTK_DOC_LIBS = @GTK_DOC_LIBS@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ JSON_CFLAGS = @JSON_CFLAGS@ JSON_FLAGS = @JSON_FLAGS@ JSON_LIBS = @JSON_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SQLITE3_CFLAGS = @SQLITE3_CFLAGS@ SQLITE3_FLAGS = @SQLITE3_FLAGS@ SQLITE3_LIBS = @SQLITE3_LIBS@ STRIP = @STRIP@ TIDY_FLAGS = @TIDY_FLAGS@ TIDY_LIBS = @TIDY_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # The name of the module, e.g. 'glib'. DOC_MODULE = gurlchecker # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. DOC_SOURCE_DIR = ../src # Extra options to pass to gtkdoc-scanobj or gtkdoc-scangobj. SCANOBJ_OPTIONS = # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = --sgml-mode # Extra options to supply to gtkdoc-fixref. FIXXREF_OPTIONS = # Used for dependencies. HFILE_GLOB = CFILE_GLOB = # Header files to ignore when scanning. IGNORE_HFILES = \ getopt.h # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). content_files = # Other files to distribute. extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = GTKDOC_LIBS = GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) # If you need to override some of the declarations, place them in the # $(DOC_MODULE)-overrides.txt file and uncomment the second line here. DOC_OVERRIDES = #DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt ########################################################################### # Everything below here is generic and you shouldn't need to change it. ########################################################################### TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) EXTRA_DIST = \ $(content_files) \ $(extra_files) \ $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_OVERRIDES) DOC_STAMPS = \ scan-build.stamp \ tmpl-build.stamp \ sgml-build.stamp \ html-build.stamp \ $(srcdir)/tmpl.stamp \ $(srcdir)/sgml.stamp \ $(srcdir)/html.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS) MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) @ENABLE_GTK_DOC_FALSE@uninstall-local: @ENABLE_GTK_DOC_FALSE@install-data-local: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local dist-hook distclean \ distclean-generic distclean-libtool distclean-local distdir \ dvi dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-local @ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp #### scan #### @ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) @ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***' @ENABLE_GTK_DOC_TRUE@ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null; \ @ENABLE_GTK_DOC_TRUE@ then \ @ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ @ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-scanobj \ @ENABLE_GTK_DOC_TRUE@ $(SCANOBJ_OPTIONS) \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ @ENABLE_GTK_DOC_TRUE@ --output-dir=$(srcdir) ; \ @ENABLE_GTK_DOC_TRUE@ else \ @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) ; \ @ENABLE_GTK_DOC_TRUE@ chmod u+w . ; \ @ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \ @ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \ @ENABLE_GTK_DOC_TRUE@ done \ @ENABLE_GTK_DOC_TRUE@ fi @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-scan \ @ENABLE_GTK_DOC_TRUE@ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ @ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ @ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)" @ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp @ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### templates #### @ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) @ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***' @ENABLE_GTK_DOC_TRUE@ chmod u+w ${srcdir}/tmpl @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log @ENABLE_GTK_DOC_TRUE@ @cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ if grep "WARNING:" tmpl-build.log > /dev/null; then \ @ENABLE_GTK_DOC_TRUE@ cat $(DOC_MODULE)-unused.txt ; \ @ENABLE_GTK_DOC_TRUE@ exit 1; fi @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ rm -f tmpl-build.log @ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### xml #### @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) @ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***' @ENABLE_GTK_DOC_TRUE@ test -d $(srcdir)/xml || mkdir $(srcdir)/xml @ENABLE_GTK_DOC_TRUE@ chmod u+w $(srcdir)/xml @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ @ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ @ENABLE_GTK_DOC_TRUE@ --main-sgml-file=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ --output-format=xml \ @ENABLE_GTK_DOC_TRUE@ $(MKDB_OPTIONS) # | tee xml-build.log # @if grep "WARNING:" sgml-build.log > /dev/null; then exit 1; fi # rm sgml-build.log @ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp @ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### html #### @ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***' @ENABLE_GTK_DOC_TRUE@ if test -d $(srcdir)/html; then chmod u+w $(srcdir)/html ; rm -rf $(srcdir)/html; fi @ENABLE_GTK_DOC_TRUE@ mkdir $(srcdir)/html @ENABLE_GTK_DOC_TRUE@ chmod u+w $(srcdir)/html @ENABLE_GTK_DOC_TRUE@ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) @ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ @ENABLE_GTK_DOC_TRUE@ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done @ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) @ENABLE_GTK_DOC_TRUE@ touch html-build.stamp @ENABLE_GTK_DOC_FALSE@all-local: ############## clean-local: rm -f *~ *.bak tmpl/*.bak @ENABLE_GTK_DOC_TRUE@ rm -rf xml html rm -f $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) maintainer-clean-local: clean cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt distclean-local: clean rm -rf $(DOC_MODULE)-decl-list.txt rm -rf $(DOC_MODULE)-decl.txt rm -rf $(DOC_MODULE)-undocumented.txt rm -rf $(DOC_MODULE)-unused.txt rm -rf tmpl/*.sgml.bak rm -f $(DOC_MODULE).hierarchy rm -f *.stamp || true if test x"$(srcdir)" != x. ; then \ rm -f $(DOC_MODULE)-docs.sgml ; \ rm -f $(DOC_MODULE).types ; \ rm -f $(DOC_MODULE).interfaces ; \ rm -f $(DOC_MODULE).prerequisites ; \ rm -f $(DOC_MODULE)-sections.txt ; \ rm -rf tmpl/*.sgml ; \ fi rm -rf *.o @ENABLE_GTK_DOC_TRUE@install-data-local: @ENABLE_GTK_DOC_TRUE@ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) @ENABLE_GTK_DOC_TRUE@ (installfiles=`echo $(srcdir)/html/*.html`; \ @ENABLE_GTK_DOC_TRUE@ if test "$$installfiles" = '$(srcdir)/html/*.html'; \ @ENABLE_GTK_DOC_TRUE@ then echo '-- Nothing to install' ; \ @ENABLE_GTK_DOC_TRUE@ else \ @ENABLE_GTK_DOC_TRUE@ for i in $$installfiles; do \ @ENABLE_GTK_DOC_TRUE@ echo '-- Installing '$$i ; \ @ENABLE_GTK_DOC_TRUE@ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ pngfiles=`echo ./html/*.png`; \ @ENABLE_GTK_DOC_TRUE@ if test "$$pngfiles" != './html/*.png'; then \ @ENABLE_GTK_DOC_TRUE@ for i in $$pngfiles; do \ @ENABLE_GTK_DOC_TRUE@ echo '-- Installing '$$i ; \ @ENABLE_GTK_DOC_TRUE@ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ fi; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \ @ENABLE_GTK_DOC_TRUE@ $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \ @ENABLE_GTK_DOC_TRUE@ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Installing $(srcdir)/html/index.sgml' ; \ @ENABLE_GTK_DOC_TRUE@ $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ @ENABLE_GTK_DOC_TRUE@ fi) @ENABLE_GTK_DOC_TRUE@uninstall-local: @ENABLE_GTK_DOC_TRUE@ (installfiles=`echo $(srcdir)/html/*.html`; \ @ENABLE_GTK_DOC_TRUE@ if test "$$installfiles" = '$(srcdir)/html/*.html'; \ @ENABLE_GTK_DOC_TRUE@ then echo '-- Nothing to uninstall' ; \ @ENABLE_GTK_DOC_TRUE@ else \ @ENABLE_GTK_DOC_TRUE@ for i in $$installfiles; do \ @ENABLE_GTK_DOC_TRUE@ rmfile=`basename $$i` ; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ @ENABLE_GTK_DOC_TRUE@ rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ pngfiles=`echo $(srcdir)/html/*.png`; \ @ENABLE_GTK_DOC_TRUE@ if test "$$pngfiles" != '$(srcdir)/html/*.png'; then \ @ENABLE_GTK_DOC_TRUE@ for i in $$pngfiles; do \ @ENABLE_GTK_DOC_TRUE@ rmfile=`basename $$i` ; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ @ENABLE_GTK_DOC_TRUE@ rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ fi; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \ @ENABLE_GTK_DOC_TRUE@ rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \ @ENABLE_GTK_DOC_TRUE@ echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \ @ENABLE_GTK_DOC_TRUE@ rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ @ENABLE_GTK_DOC_TRUE@ fi) @ENABLE_GTK_DOC_TRUE@ if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi # # Require gtk-doc when making dist # @ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" @ENABLE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl mkdir $(distdir)/xml mkdir $(distdir)/html -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl -cp $(srcdir)/xml/*.xml $(distdir)/xml -cp $(srcdir)/html/*.html $(distdir)/html -cp $(srcdir)/html/*.png $(distdir)/html -cp $(srcdir)/html/gurlchecker.devhelp $(distdir)/html images=$(HTML_IMAGES) ; \ for i in "" $$images ; do \ if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \ done .PHONY : dist-hook-local # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gurlchecker-0.13.1/doc/tmpl/0000755000175000017500000000000011530645400012612 500000000000000gurlchecker-0.13.1/doc/tmpl/web_site.sgml0000644000175000017500000000143311530645400015220 00000000000000 web_site Manage specific check on web sites. @url: @host: @depth: @Returns: @id: @id: @id: gurlchecker-0.13.1/doc/tmpl/connection.sgml0000644000175000017500000000074311530645400015561 00000000000000 connection Manage connections work. @proto: @host: @port: @buffer: @header_request: @Returns: gurlchecker-0.13.1/doc/tmpl/application.sgml0000644000175000017500000001454411530645400015731 00000000000000 application Manage some general application work. @id: @label: @wname: @key: @Returns: @value: @Returns: @server: @page: @label: @name: @value: @path: @expires: @action: @Returns: @title: @message: @title: @text: @Returns: @title: @text: @Returns: @progress: @msg: @Returns: @modal: @tv: @iter: @Returns: @prop: @label_pos: @message: @message: @msg_type: @Returns: @label_pos: @message: @treeview: @event: @url: @name: @val: @message: @msg_type: @url: @auth_user: @auth_password: @no_urls_args: @Returns: @Returns: @status_code: @Returns: @type: @Returns: @title: @host: @Returns: gurlchecker-0.13.1/doc/tmpl/bookmarks.sgml0000644000175000017500000000170511530645400015411 00000000000000 bookmarks Manage bookmarks work. @list: @file: @Returns: @file: @Returns: @Returns: @prop: @file: @Returns: gurlchecker-0.13.1/doc/tmpl/project.sgml0000644000175000017500000003246511530645400015076 00000000000000 project Manage works relative on project management. @UC_PROJECT_TYPE_WEB_SITE: @UC_PROJECT_TYPE_LOCAL_FILE: @UC_PROJECT_TYPE_BOOKMARKS: @UC_PROJECT_TYPE_ALL: @UC_PROJECT_TYPES_LEN: @Returns: @Returns: @value: @Returns: @value: @Returns: @value: @type: @Returns: @type: @value: @Returns: @type: @value: @type: @Returns: @Returns: @value: @Returns: @value: @Returns: @Returns: @items: @value: @items: @items: @Returns: @Returns: @Returns: @items: @Returns: @value: @value: @Returns: @value: @Returns: @value: @Returns: @Returns: @value: @Returns: @value: @p: @id: @Returns: @project_type: @Returns: @id: @Returns: @treeview: @Returns: @Returns: @Returns: @items: @item_size: @items: @item_size: @Returns: @Returns: @items: @items: @items: @items: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @value: @value: @value: @type: @id: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @value: @Returns: gurlchecker-0.13.1/doc/tmpl/callbacks.sgml0000644000175000017500000000173511530645400015343 00000000000000 callbacks Manage callbacks for the UI. @selection: @user_data: @widget: @event: @data: @Returns: @selection: @user_data: @widget: @event: @data: @Returns: @widget: @event: @user_data: @Returns: @widget: @event: @user_data: @Returns: gurlchecker-0.13.1/doc/tmpl/check.sgml0000644000175000017500000001131211530645400014471 00000000000000 check Manage some common work relative on links check. @UC_HTTP_CHECK_RETURN_SAME: @UC_HTTP_CHECK_RETURN_OK: @UC_HTTP_CHECK_RETURN_BAD: @UC_HTTP_CHECK_RETURN_REDIR: @UC_HTTP_CHECK_RETURN_IGNORE: @UC_HTTP_CHECK_RETURN_FAKED_URL: @UC_HTTP_CHECK_RETURN_TIMEOUT: @UC_HTTP_CHECK_RETURN_MALFORMED: @type: @path: @content_type: @Returns: @Returns: @prop: @Returns: @prop: @prop: @list: @depth: @src: @dst: @Returns: @prop: @Returns: @link_type: @proto: @Returns: @type: @Returns: @id: @prop: @Returns: @value: @proto: @Returns: @link_type: @proto: @Returns: @parent: @current_host: @tag: @url: @is_first: @prop: @url: @Returns: @normalized_url: @lp: @Returns: @depth: @current_host: @current_path: @tag: @old_prop: @accept: @retry: @Returns: @Returns: @status: @Returns: @status: @Returns: @status: @Returns: @status: @Returns: @status: @Returns: @status: @Returns: @Returns: @Returns: @Returns: @Returns: @value: @value: @list: @path: @iter: @dum: gurlchecker-0.13.1/doc/tmpl/gurlchecker-unused.sgml0000644000175000017500000001150411530645400017216 00000000000000 clam tidy @key: @value: @next: @size: @nnodes: @nodes: @hash_func: @key_equal_func: @key_destroy_func: @value_destroy_func: @current_host: @current_path: @tag: @list_ptr: @parent: @xml_node: @bookmark_folder_id: @url: @label: @array: @table: @label: @name: @p1: @p2: @p3: @p4: @proto: @link_status: @link_type: @list: @file: @Returns: @list: @iter: @proto: @list: @iter: @view_type: @list: @iter: @link_type: @prop_p: @url_p: @list: @list: @prop: @cook: @path: @Returns: @Returns: @Returns: @value: @value: @item: @array: @size: @Returns: @requested_size: @Returns: @url: @depth: @Returns: gurlchecker-0.13.1/doc/tmpl/url.sgml0000644000175000017500000000262211530645400014222 00000000000000 url Manage URL parser work. @prop: @tag: @Returns: @path: @Returns: @prop: @current_host: @current_path: @url: @Returns: @current_host: @url: @Returns: @url: @Returns: @proto: @host: @Returns: @url: @Returns: @url: @Returns: @url: @Returns: @current_host: @current_path: @rurl: @host: @port: @path: @args: @Returns: @host: @Returns: gurlchecker-0.13.1/doc/tmpl/html_parser.sgml0000644000175000017500000000121011530645400015730 00000000000000 html_parser Manage HTML parser work. @buffer_orig: @Returns: @Returns: @tag: @buffer_orig: @Returns: gurlchecker-0.13.1/doc/tmpl/cache.sgml0000644000175000017500000000106111530645400014457 00000000000000 cache Manage pages content files work. @old: @new: @id: @length: @Returns: @id: @src: @length: gurlchecker-0.13.1/doc/tmpl/general.sgml0000644000175000017500000002116111530645400015034 00000000000000 general General header used by all gURLChecker files. @key: @Returns: @value: @Returns: @flag: @flag: @flag: @flag: @flag: @flag: @flag: @flag: @flag: @name: @value: @name: @window: @widget: @name: @window: @widget: @name: @color: @message: @description: @icon_file: @depth: @label: @value: @type: @uid: @treeview_path: @parent: @current_path: @iter: @tag: @link_type: @link_icon: @status_icon: @user_action: @link_value: @url: @normalized_url: @label: @protocol: @h_name: @port: @path: @args: @domain: @header: @header_size: @depth_level: @is_parsable: @is_downloadable: @checked: @xml_node: @json_array: @bookmark_folder_id: @bookmark_id: @to_delete: @metas: @emails: @all_links: @childs: @similar_links_parents: @bad_extensions: @virii: @virname: @w3c_valid: @tags: gurlchecker-0.13.1/doc/tmpl/cookies.sgml0000644000175000017500000000102511530645400015050 00000000000000 cookies Manage some common cookies actions @prop: @cook: @path: @Returns: gurlchecker-0.13.1/doc/tmpl/tooltips.sgml0000644000175000017500000000304111530645400015271 00000000000000 tooltips Manage customized tooltips. @value: @Returns: @x: @y: @Returns: @id: @Returns: @id: @x: @y: @value: @Returns: @Returns: @value: @Returns: gurlchecker-0.13.1/doc/tmpl/utils.sgml0000644000175000017500000001045311530645400014561 00000000000000 utils Manage some common functions used by all other files. @str: @Returns: @begin: @container: @time_string: @Returns: @s: @Returns: @buffer: @code: @len: @Returns: @size: @Returns: @field: @Returns: @src: @dest: @prop: @tag: @Returns: @data: @Returns: @src: @dest: @format: @Varargs: @prop: @tv: @position: @path: @length: @Returns: @email: @user: @domain: @domain: @Returns: @yesno: @Returns: @mx: @Returns: @host: @Returns: @email: @check_mx: @Returns: @label: @size: @Returns: @label: @size: @Returns: @str: @old: @new: @Returns: @string: @c1: @c2: @Returns: @string: @c: @Returns: @uid: @Returns: @host: @port: @value: @Returns: @buf: @str: @limit_char: @Returns: @str1: @str2: @Returns: @path: @path: @create_all: @Returns: @path: @delete_all: @data: @Returns: @str: @accept: @Returns: @begin: @end: @Returns: @sock: @Returns: @Returns: @g: @w_auth_user: @w_auth_password: @auth_user: @auth_password: @auth_line: @Returns: @auth_user: @auth_password: @Returns: gurlchecker-0.13.1/doc/tmpl/clam.sgml0000644000175000017500000000053711530645400014337 00000000000000 clam @root: @no: @virname: @size: @limits: gurlchecker-0.13.1/doc/tmpl/lists.sgml0000644000175000017500000000510511530645400014555 00000000000000 lists Manage some work on lists. @list: @fd: @ftype: @prop: @src: @Returns: @first: @second: @Returns: @list: @url: @prop: @prop: @url: @prop: @old: @new: @url: @return_node: @Returns: @url: @ac_p: @Returns: @Returns: @list: @Returns: @list: @prop: @url: @Returns: @url: @Returns: @uid: @Returns: @list: @url: @Returns: @prop_p: @url: gurlchecker-0.13.1/doc/tmpl/report.sgml0000644000175000017500000000450011530645400014730 00000000000000 report Manage graphic report work. @format: @list: @ftype: @all: @checked: @bad: @malformed: @good: @ignored: @timeout: @elapsedtime: @buffer: @Returns: @prop: @current_path: @current_port: @current_args: @current_host: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @Returns: @data: @Returns: @val: @val: @val: @val: @val: @val: @val: @val: gurlchecker-0.13.1/doc/tmpl/timeout.sgml0000644000175000017500000000113711530645400015106 00000000000000 timeout Manage timeouts. @domain: @domain: @Returns: gurlchecker-0.13.1/doc/tmpl/search.sgml0000644000175000017500000000134511530645400014666 00000000000000 search Manage search on checked links content. @Returns: @val: @selection: gurlchecker-0.13.1/doc/tmpl/ucclam.sgml0000644000175000017500000000116311530645400014663 00000000000000 ucclam To work with libclamav. @size: @sigs: @virname: @engine: @error: @Returns: @clam: @path: @virname: @Returns: @clam: gurlchecker-0.13.1/doc/tmpl/uctidy.sgml0000644000175000017500000000112011530645400014711 00000000000000 uctidy To work with libtidy. @errbuf: @tdoc: @Returns: @tidy: @buffer: @Returns: @tidy: gurlchecker-0.13.1/doc/tmpl/uccroco.sgml0000644000175000017500000000123411530645400015053 00000000000000 uccroco To work with libcroco. @css_handler: @is_valid: @log_error: @parser: @def: @error_buffer: @error_count: @Returns: @croco: @path: @Returns: @croco: gurlchecker-0.13.1/doc/tmpl/tidy.sgml0000644000175000017500000000050611530645400014370 00000000000000 tidy @errbuf: @tdoc: gurlchecker-0.13.1/doc/gurlchecker-docs.sgml0000644000175000017500000000712411331077172015676 00000000000000 ]> gURLChecker Reference Manual Emmanuel Saracco
esaracco@users.labs.libre-entreprise.org
2003-2010 Emmanuel Saracco Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. This manual documents gURLChecker, a graphic links checker.
gURLChecker API description &gurlchecker-general; &gurlchecker-application; &gurlchecker-bookmarks; &gurlchecker-cache; &gurlchecker-callbacks; &gurlchecker-check; &gurlchecker-ucclam; &gurlchecker-uctidy; &gurlchecker-uccroco; &gurlchecker-connection; &gurlchecker-html-parser; &gurlchecker-lists; &gurlchecker-project; &gurlchecker-report; &gurlchecker-search; &gurlchecker-timeout; &gurlchecker-url; &gurlchecker-utils; &gurlchecker-web-site; &gurlchecker-tooltips;
gurlchecker-0.13.1/doc/xml/0000755000175000017500000000000011530645400012436 500000000000000gurlchecker-0.13.1/aclocal.m40000644000175000017500000020770011530645262012665 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Configure paths for GLIB # Owen Taylor 1997-2001 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject, dnl gthread, or gio is specified in MODULES, pass to pkg-config dnl AC_DEFUN([AM_PATH_GLIB_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], , enable_glibtest=yes) pkg_config_args=glib-2.0 for module in . $4 do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gmodule-no-export) pkg_config_args="$pkg_config_args gmodule-no-export-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; gio*) pkg_config_args="$pkg_config_args $module-2.0" ;; esac done PKG_PROG_PKG_CONFIG([0.16]) no_glib="" if test "x$PKG_CONFIG" = x ; then no_glib=yes PKG_CONFIG=no fi min_glib_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" dnl dnl Now check if the installed GLIB is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.glibtest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" AC_TRY_LINK([ #include #include ], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_GENMARSHAL) AC_SUBST(GOBJECT_QUERY) AC_SUBST(GLIB_MKENUMS) rm -f conf.glibtest ]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl GNOME_COMPILE_WARNINGS dnl Turn on many useful compiler warnings dnl For now, only works on GCC AC_DEFUN([GNOME_COMPILE_WARNINGS],[ dnl ****************************** dnl More compiler warnings dnl ****************************** AC_ARG_ENABLE(compile-warnings, AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], [Turn on compiler warnings]),, [enable_compile_warnings="m4_default([$1],[yes])"]) warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) CFLAGS="$SAVE_CFLAGS" AC_MSG_RESULT($has_option) if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) ;; esac CFLAGS="$realsave_CFLAGS" AC_MSG_CHECKING(what warning flags to pass to the C compiler) AC_MSG_RESULT($warning_flags) AC_ARG_ENABLE(iso-c, AC_HELP_STRING([--enable-iso-c], [Try to warn if code is not ISO C ]),, [enable_iso_c=no]) AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCFLAGS) WARN_CFLAGS="$warning_flags $complCFLAGS" AC_SUBST(WARN_CFLAGS) ]) dnl For C++, do basically the same thing. AC_DEFUN([GNOME_CXX_WARNINGS],[ AC_ARG_ENABLE(cxx-warnings, AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] [Turn on compiler warnings.]),, [enable_cxx_warnings="m4_default([$1],[minimum])"]) AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) warnCXXFLAGS= if test "x$GXX" != xyes; then enable_cxx_warnings=no fi if test "x$enable_cxx_warnings" != "xno"; then if test "x$GXX" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) warnCXXFLAGS="-Wall -Wno-unused" ;; esac ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall if test "x$enable_cxx_warnings" = "xyes"; then warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" fi fi fi AC_MSG_RESULT($warnCXXFLAGS) AC_ARG_ENABLE(iso-cxx, AC_HELP_STRING([--enable-iso-cxx], [Try to warn if code is not ISO C++ ]),, [enable_iso_cxx=no]) AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) complCXXFLAGS= if test "x$enable_iso_cxx" != "xno"; then if test "x$GXX" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; esac case " $CXXFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCXXFLAGS) WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" AC_SUBST(WARN_CXXFLAGS) ]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. 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` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. 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])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl 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])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$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 am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) 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 # 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. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time 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])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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 } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])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 if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi 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 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])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) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 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 AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .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 # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # 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 ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # 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)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar 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]) ]) # _AM_PROG_TAR m4_include([m4/intltool.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) gurlchecker-0.13.1/configure0000755000175000017500000170455011530645264012744 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 IFS=$as_save_IFS ;; 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_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 <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="configure.in" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS PACKAGE_LIBS PACKAGE_CFLAGS GNUTLS_FLAGS GNUTLS_LIBS CLAMAV_FLAGS CLAMAV_LIBS TIDY_FLAGS TIDY_LIBS CROCO_FLAGS CROCO_LIBS CROCO_CFLAGS SQLITE3_FLAGS SQLITE3_LIBS SQLITE3_CFLAGS JSON_FLAGS JSON_LIBS JSON_CFLAGS ENABLE_GTK_DOC_FALSE ENABLE_GTK_DOC_TRUE HAVE_GTK_DOC_FALSE HAVE_GTK_DOC_TRUE GTK_DOC_LIBS GTK_DOC_CFLAGS HTML_DIR MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS WARN_CFLAGS GLIB_MKENUMS GOBJECT_QUERY GLIB_GENMARSHAL GLIB_LIBS GLIB_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_static enable_shared with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_glibtest enable_compile_warnings enable_iso_c enable_nls enable_html_dir enable_gtk_doc with_json with_sqlite3 with_croco with_tidy with_clamav with_gnutls ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GTK_DOC_CFLAGS GTK_DOC_LIBS JSON_CFLAGS JSON_LIBS SQLITE3_CFLAGS SQLITE3_LIBS CROCO_CFLAGS CROCO_LIBS PACKAGE_CFLAGS PACKAGE_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # 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. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= 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 case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -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) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$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 ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$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 ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) 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 ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=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 ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_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'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 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 $as_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 ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # 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 the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | 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 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] 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] --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] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-glibtest do not try to compile and run a test GLIB program --enable-compile-warnings=[no/minimum/yes/maximum/error] Turn on compiler warnings --enable-iso-c Try to warn if code is not ISO C --disable-nls do not use Native Language Support --with-html-dir=[=PATH] use PATH to install docs [default=${datadir}/gtk-doc/html] --enable-gtk-doc use gtk-doc to build documentation [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-json[=DIR] use JSON library located in directory DIR (if supplied) for Firefox bookmarks management [default=yes (if present)] --with-sqlite3[=DIR] use SQLITE3 library located in directory DIR (if supplied) for Firefox bookmarks management [default=yes (if present)] --with-croco[=DIR] use CROCO library located in directory DIR (if supplied) for CSS2 validation [default=yes (if present)] --with-tidy[=DIR] use TIDY library located in directory DIR (if supplied) for HTML w3c validation [default=yes (if present)] --with-clamav[=DIR] use CLAMAV library located in directory DIR (if supplied) for virii scan [default=yes (if present)] --with-gnutls[=DIR] use GNUTLS library located in directory DIR (if supplied) for HTTPS check [default=yes (if present)] 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 LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GTK_DOC_CFLAGS C compiler flags for GTK_DOC, overriding pkg-config GTK_DOC_LIBS linker flags for GTK_DOC, overriding pkg-config JSON_CFLAGS C compiler flags for JSON, overriding pkg-config JSON_LIBS linker flags for JSON, overriding pkg-config SQLITE3_CFLAGS C compiler flags for SQLITE3, overriding pkg-config SQLITE3_LIBS linker flags for SQLITE3, overriding pkg-config CROCO_CFLAGS C compiler flags for CROCO, overriding pkg-config CROCO_LIBS linker flags for CROCO, overriding pkg-config PACKAGE_CFLAGS C compiler flags for PACKAGE, overriding pkg-config PACKAGE_LIBS linker flags for PACKAGE, overriding pkg-config 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 the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested 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 else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.67 Copyright (C) 2010 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 fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* 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_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { 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` /usr/bin/hostinfo = `(/usr/bin/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=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append 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 as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > 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 cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } 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. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_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 $ac_precious_vars; 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,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_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 # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_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. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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.11' 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 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # 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. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir 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. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$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' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # 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". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "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 $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi 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=gurlchecker VERSION=0.13.1 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"} # 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 -' ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-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 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 -std 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 -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 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 for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : 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 depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&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 am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac 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 # 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. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" 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 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 -std 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 -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 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 for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : 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 depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&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 am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac 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 # 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. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$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 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&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 : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #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)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # Check whether --enable-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=no fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST 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_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&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 variants of GNU ld 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 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_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" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5645: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5648: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5651: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&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* | cegcc*) # 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; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` 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` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$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' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&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 aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) 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', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) 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|DragonFly)/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 ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; 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* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) 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=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) 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 ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$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 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&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]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; 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 # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \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\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # 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 # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$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=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && 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 <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_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\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && 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 -rf 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-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\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 6856 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; 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-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) 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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-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 --with-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 # Check whether --enable-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 # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF 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. 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 delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&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 <<_LT_EOF 1>&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 _LT_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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&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 <<_LT_EOF 1>&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 _LT_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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script 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;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8105: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8109: \$? = $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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$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= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&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*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # 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' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # 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). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries 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' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; 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 ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) 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* | cygwin* | pw32* | os2* | cegcc*) # 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' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) 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 ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8444: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8448: \$? = $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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_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 # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker 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 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8549: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8553: \$? = $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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $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 .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8604: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8608: \$? = $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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $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 .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # 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_|_GLOBAL__F[ID]_.*' # 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. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=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}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. 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 supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [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 # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) 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 ;; esac ;; 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* | cegcc*) # _LT_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 '\''/^[BCDGRS][ ]/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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; 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~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) 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*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 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 ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) 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" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= 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 "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) 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].*|aix[5-9]*) 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_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' 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 : 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' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no 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 export_dynamic_flag_spec='${wl}-bexpall' # 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) 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 ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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 "X$deplibs" | $Xsed -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*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" 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* | dragonfly*) 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*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=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 fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -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*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=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 "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) 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 ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes 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' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' 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 else ld_shlibs=no 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 "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' 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 "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${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}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' 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' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $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 -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; 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 if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic 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\":${as_lineno-$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=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_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. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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" 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' ;; aix[4-9]*) 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' 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* | cegcc*) # 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}${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`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" 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 ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi 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 ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes 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' ;; interix[3-9]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $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' ;; netbsdelf*-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='NetBSD ld.elf_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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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" ;; rdos*) dynamic_linker=no ;; 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.3*) 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 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent 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_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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; 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 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* | cegcc*) 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""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 ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" 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" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&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 <<_LT_EOF #line 10988 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&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 <<_LT_EOF #line 11084 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$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 striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&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" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "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" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&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 ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } 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" ac_config_commands="$ac_config_commands libtool" # Only expand once: ac_fn_c_check_header_mongrel "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "$ac_includes_default" if test "x$ac_cv_header_resolv_h" = x""yes; then : fi # Check whether --enable-glibtest was given. if test "${enable_glibtest+set}" = set; then : enableval=$enable_glibtest; else enable_glibtest=yes fi pkg_config_args=glib-2.0 for module in . do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gmodule-no-export) pkg_config_args="$pkg_config_args gmodule-no-export-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; gio*) pkg_config_args="$pkg_config_args $module-2.0" ;; esac done if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi no_glib="" if test "x$PKG_CONFIG" = x ; then no_glib=yes PKG_CONFIG=no fi min_glib_version=2.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5 $as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" rm -f conf.glibtest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_glib=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 $as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" : fi rm -f conf.glibtest # Check whether --enable-compile-warnings was given. if test "${enable_compile_warnings+set}" = set; then : enableval=$enable_compile_warnings; else enable_compile_warnings="yes" fi warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 $as_echo_n "checking whether gcc understands $option... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : has_option=yes else has_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 $as_echo "$has_option" >&6; } if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) as_fn_error $? "Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" "$LINENO" 5 ;; esac CFLAGS="$realsave_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 $as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $warning_flags" >&5 $as_echo "$warning_flags" >&6; } # Check whether --enable-iso-c was given. if test "${enable_iso_c+set}" = set; then : enableval=$enable_iso_c; else enable_iso_c=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking what language compliance flags to pass to the C compiler" >&5 $as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; } complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *\ \ -ansi\ \ *) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *\ \ -pedantic\ \ *) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $complCFLAGS" >&5 $as_echo "$complCFLAGS" >&6; } WARN_CFLAGS="$warning_flags $complCFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.30"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.30" >&5 $as_echo_n "checking for intltool >= 0.30... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.30 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.30 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi GETTEXT_PACKAGE=gurlchecker cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="da de eo es fr it ja sk" for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES pkg_modules="gnutls > 1.0 gtk+-2.0 >= 2.6 libgnomeui-2.0 libglade-2.0 libxml-2.0 > 2.6 gnet-2.0" { $as_echo "$as_me:${as_lineno-$LINENO}: *****************************************" >&5 $as_echo "$as_me: *****************************************" >&6;} ################################################## # gtk-doc ################################################## # Check whether --enable-html-dir was given. if test "${enable_html_dir+set}" = set; then : enableval=$enable_html_dir; case "x$enableval" in x | xno | xyes) HTML_DIR='${datadir}/gtk-doc/html' ;; *) HTML_DIR="$enableval" ;; esac else HTML_DIR='${datadir}/gtk-doc/html' fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_DOC" >&5 $as_echo_n "checking for GTK_DOC... " >&6; } if test -n "$GTK_DOC_CFLAGS"; then pkg_cv_GTK_DOC_CFLAGS="$GTK_DOC_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc > 1.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-doc > 1.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_DOC_CFLAGS=`$PKG_CONFIG --cflags "gtk-doc > 1.1" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK_DOC_LIBS"; then pkg_cv_GTK_DOC_LIBS="$GTK_DOC_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc > 1.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-doc > 1.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_DOC_LIBS=`$PKG_CONFIG --libs "gtk-doc > 1.1" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_DOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-doc > 1.1" 2>&1` else GTK_DOC_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-doc > 1.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_DOC_PKG_ERRORS" >&5 HAVE_GTK_DOC="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } HAVE_GTK_DOC="no" else GTK_DOC_CFLAGS=$pkg_cv_GTK_DOC_CFLAGS GTK_DOC_LIBS=$pkg_cv_GTK_DOC_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } HAVE_GTK_DOC="yes" fi if test "x$HAVE_GTK_DOC" = "xyes"; then HAVE_GTK_DOC_TRUE= HAVE_GTK_DOC_FALSE='#' else HAVE_GTK_DOC_TRUE='#' HAVE_GTK_DOC_FALSE= fi # Check whether --enable-gtk-doc was given. if test "${enable_gtk_doc+set}" = set; then : enableval=$enable_gtk_doc; enable_gtk_doc="$enableval" else enable_gtk_doc=auto fi if test x$enable_gtk_doc = xyes -a x$HAVE_GTK_DOC != xyes; then echo "Please install the gtk-doc package." exit -1 fi if test x$enable_gtk_doc = xauto -o x$enable_gtk_doc = xyes ; then enable_gtk_doc=$HAVE_GTK_DOC fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_FALSE= fi ################################################ # json-glib ################################################ JSON_LIBS='' JSON_FLAGS='' JSON_CFLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use JSON library (Google Chrome bookmarks management)" >&5 $as_echo_n "checking whether to use JSON library (Google Chrome bookmarks management)... " >&6; } if test "x$enable_json" != "xno"; then # Check whether --with-json was given. if test "${with_json+set}" = set; then : withval=$with_json; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_json=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_json=yes if test -d "$withval"; then want_json_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for json-glib does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for json-glib does not exist." >&2;} want_json=no fi else want_json=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_json=no fi if test "x$want_json" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JSON" >&5 $as_echo_n "checking for JSON... " >&6; } if test -n "$JSON_CFLAGS"; then pkg_cv_JSON_CFLAGS="$JSON_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= 0.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= 0.8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_JSON_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0 >= 0.8" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$JSON_LIBS"; then pkg_cv_JSON_LIBS="$JSON_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= 0.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= 0.8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_JSON_LIBS=`$PKG_CONFIG --libs "json-glib-1.0 >= 0.8" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then JSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "json-glib-1.0 >= 0.8" 2>&1` else JSON_PKG_ERRORS=`$PKG_CONFIG --print-errors "json-glib-1.0 >= 0.8" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$JSON_PKG_ERRORS" >&5 want_json=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libjson-glib-1.0 not found" >&5 $as_echo "libjson-glib-1.0 not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libjson-glib support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libjson-glib support, but it doesn't seem to be installed." >&2;} elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } want_json=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libjson-glib-1.0 not found" >&5 $as_echo "libjson-glib-1.0 not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libjson-glib support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libjson-glib support, but it doesn't seem to be installed." >&2;} else JSON_CFLAGS=$pkg_cv_JSON_CFLAGS JSON_LIBS=$pkg_cv_JSON_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } want_json=yes JSON_FLAGS="-DENABLE_JSON $JSON_CFLAGS" LDFLAGS="$LDFLAGS $want_json_path" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libjson-glib support. gurlchecker will not be able to manage Firefox bookmarks..." >&5 $as_echo "$as_me: WARNING: You are building without libjson-glib support. gurlchecker will not be able to manage Firefox bookmarks..." >&2;} fi ################################################ # libsqlite3 ################################################ SQLITE3_LIBS='' SQLITE3_FLAGS='' SQLITE3_CFLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use SQLITE3 library (Firefox bookmarks management)" >&5 $as_echo_n "checking whether to use SQLITE3 library (Firefox bookmarks management)... " >&6; } if test "x$enable_sqlite3" != "xno"; then # Check whether --with-sqlite3 was given. if test "${with_sqlite3+set}" = set; then : withval=$with_sqlite3; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_sqlite3=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_sqlite3=yes if test -d "$withval"; then want_sqlite3_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for libsqlite3 does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for libsqlite3 does not exist." >&2;} want_sqlite3=no fi else want_sqlite3=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_sqlite3=no fi if test "x$want_sqlite3" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SQLITE3" >&5 $as_echo_n "checking for SQLITE3... " >&6; } if test -n "$SQLITE3_CFLAGS"; then pkg_cv_SQLITE3_CFLAGS="$SQLITE3_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SQLITE3_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$SQLITE3_LIBS"; then pkg_cv_SQLITE3_LIBS="$SQLITE3_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SQLITE3_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then SQLITE3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sqlite3 >= 3.6" 2>&1` else SQLITE3_PKG_ERRORS=`$PKG_CONFIG --print-errors "sqlite3 >= 3.6" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$SQLITE3_PKG_ERRORS" >&5 want_sqlite3=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libsqlite3 not found" >&5 $as_echo "libsqlite3 not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libsqlite3 support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libsqlite3 support, but it doesn't seem to be installed." >&2;} elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } want_sqlite3=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libsqlite3 not found" >&5 $as_echo "libsqlite3 not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libsqlite3 support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libsqlite3 support, but it doesn't seem to be installed." >&2;} else SQLITE3_CFLAGS=$pkg_cv_SQLITE3_CFLAGS SQLITE3_LIBS=$pkg_cv_SQLITE3_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } want_sqlite3=yes SQLITE3_FLAGS="-DENABLE_SQLITE3 $SQLITE3_CFLAGS" LDFLAGS="$LDFLAGS $want_sqlite3_path" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libsqlite3 support. gurlchecker will not be able to manage Firefox bookmarks..." >&5 $as_echo "$as_me: WARNING: You are building without libsqlite3 support. gurlchecker will not be able to manage Firefox bookmarks..." >&2;} fi ################################################ # libcroco ################################################ CROCO_LIBS='' CROCO_FLAGS='' CROCO_CFLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use CROCO library (CSS2 w3c validation)" >&5 $as_echo_n "checking whether to use CROCO library (CSS2 w3c validation)... " >&6; } if test "x$enable_croco" != "xno"; then # Check whether --with-croco was given. if test "${with_croco+set}" = set; then : withval=$with_croco; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_croco=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_croco=yes if test -d "$withval"; then want_croco_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for libcroco does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for libcroco does not exist." >&2;} want_croco=no fi else want_croco=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_croco=no fi if test "x$want_croco" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CROCO" >&5 $as_echo_n "checking for CROCO... " >&6; } if test -n "$CROCO_CFLAGS"; then pkg_cv_CROCO_CFLAGS="$CROCO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcroco-0.6 >= 0.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libcroco-0.6 >= 0.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CROCO_CFLAGS=`$PKG_CONFIG --cflags "libcroco-0.6 >= 0.6.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$CROCO_LIBS"; then pkg_cv_CROCO_LIBS="$CROCO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcroco-0.6 >= 0.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libcroco-0.6 >= 0.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CROCO_LIBS=`$PKG_CONFIG --libs "libcroco-0.6 >= 0.6.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then CROCO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcroco-0.6 >= 0.6.0" 2>&1` else CROCO_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcroco-0.6 >= 0.6.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$CROCO_PKG_ERRORS" >&5 want_croco=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libcroco not found" >&5 $as_echo "libcroco not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libcroco support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libcroco support, but it doesn't seem to be installed." >&2;} elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } want_croco=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: libcroco not found" >&5 $as_echo "libcroco not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libcroco support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libcroco support, but it doesn't seem to be installed." >&2;} else CROCO_CFLAGS=$pkg_cv_CROCO_CFLAGS CROCO_LIBS=$pkg_cv_CROCO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } want_croco=yes CROCO_FLAGS="-DENABLE_CROCO $CROCO_CFLAGS" LDFLAGS="$LDFLAGS $want_croco_path" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libcroco support. gurlchecker will not be able to do CSS validation..." >&5 $as_echo "$as_me: WARNING: You are building without libcroco support. gurlchecker will not be able to do CSS validation..." >&2;} fi ################################################ # libtidy ################################################ TIDY_LIBS='' TIDY_FLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use TIDY library (HTML w3c validation)" >&5 $as_echo_n "checking whether to use TIDY library (HTML w3c validation)... " >&6; } if test "x$enable_tidy" != "xno"; then # Check whether --with-tidy was given. if test "${with_tidy+set}" = set; then : withval=$with_tidy; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_tidy=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_tidy=yes if test -d "$withval"; then want_tidy_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for libtidy does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for libtidy does not exist." >&2;} want_tidy=no fi else want_tidy=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_tidy=no fi if test "x$want_tidy" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tidyCreate in -ltidy" >&5 $as_echo_n "checking for tidyCreate in -ltidy... " >&6; } if test "${ac_cv_lib_tidy_tidyCreate+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltidy $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tidyCreate (); int main () { return tidyCreate (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tidy_tidyCreate=yes else ac_cv_lib_tidy_tidyCreate=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tidy_tidyCreate" >&5 $as_echo "$ac_cv_lib_tidy_tidyCreate" >&6; } if test "x$ac_cv_lib_tidy_tidyCreate" = x""yes; then : for ac_header in tidy.h tidy/tidy.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF want_tidy=yes TIDY_FLAGS="$TIDY_FLAGS -DHAVE_TIDY_H_IN_SUBDIR -DENABLE_TIDY" TIDY_LIBS="-ltidy" LDFLAGS="$LDFLAGS $want_tidy_path" else want_tidy=no fi done else want_tidy=no { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libtidy support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libtidy support, but it doesn't seem to be installed." >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libtidy support. gurlchecker will not be able to do HTML validation..." >&5 $as_echo "$as_me: WARNING: You are building without libtidy support. gurlchecker will not be able to do HTML validation..." >&2;} fi ################################################ # libclamav ################################################ CLAMAV_LIBS='' CLAMAV_FLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use CLAMAV library (virii scan)" >&5 $as_echo_n "checking whether to use CLAMAV library (virii scan)... " >&6; } if test "x$enable_clamav" != "xno"; then # Check whether --with-clamav was given. if test "${with_clamav+set}" = set; then : withval=$with_clamav; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_clamav=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_clamav=yes if test -d "$withval"; then want_clamav_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for libtidy does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for libtidy does not exist." >&2;} want_clamav=no fi else want_clamav=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_clamav=no fi if test "x$want_clamav" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cl_init in -lclamav" >&5 $as_echo_n "checking for cl_init in -lclamav... " >&6; } if test "${ac_cv_lib_clamav_cl_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lclamav $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cl_init (); int main () { return cl_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_clamav_cl_init=yes else ac_cv_lib_clamav_cl_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_clamav_cl_init" >&5 $as_echo "$ac_cv_lib_clamav_cl_init" >&6; } if test "x$ac_cv_lib_clamav_cl_init" = x""yes; then : ac_fn_c_check_header_mongrel "$LINENO" "clamav.h" "ac_cv_header_clamav_h" "$ac_includes_default" if test "x$ac_cv_header_clamav_h" = x""yes; then : want_clamav=yes CLAMAV_FLAGS="$CLAMAV_FLAGS -DENABLE_CLAMAV" CLAMAV_LIBS="-lclamav" LDFLAGS="$LDFLAGS $want_clamav_path" else want_clamav=no fi else want_clamav=no { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libclamav support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libclamav support, but it doesn't seem to be installed." >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libclamav support. gurlchecker will not be able to do virii scan..." >&5 $as_echo "$as_me: WARNING: You are building without libclamav support. gurlchecker will not be able to do virii scan..." >&2;} fi ################################################ # SSL stuff ################################################ GNUTLS_LIBS='' GNUTLS_FLAGS='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use GNUTLS library (HTTPS check)" >&5 $as_echo_n "checking whether to use GNUTLS library (HTTPS check)... " >&6; } if test "x$enable_gnutls" != "xno"; then # Check whether --with-gnutls was given. if test "${with_gnutls+set}" = set; then : withval=$with_gnutls; if test "x$withval" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_gnutls=no elif test "x$withval" = "xyes" -o -d "$withval"; then want_gnutls=yes if test -d "$withval"; then want_gnutls_path=$withval fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The specified path for libgnutls does not exist." >&5 $as_echo "$as_me: WARNING: The specified path for libgnutls does not exist." >&2;} want_gnutls=no fi else want_gnutls=yes fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested" >&5 $as_echo "not requested" >&6; } want_gnutls=no fi if test "x$want_gnutls" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested" >&5 $as_echo "requested" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_global_init in -lgnutls" >&5 $as_echo_n "checking for gnutls_global_init in -lgnutls... " >&6; } if test "${ac_cv_lib_gnutls_gnutls_global_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_global_init (); int main () { return gnutls_global_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_global_init=yes else ac_cv_lib_gnutls_gnutls_global_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_global_init" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_global_init" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_global_init" = x""yes; then : for ac_header in gnutls.h gnutls/gnutls.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF want_gnutls=yes GNUTLS_FLAGS="$GNUTLS_FLAGS -DHAVE_GNUTLS_H_IN_SUBDIR -DENABLE_GNUTLS" GNUTLS_LIBS="-lgnutls" LDFLAGS="$LDFLAGS $want_gnutls_path" else want_gnutls=no fi done else want_gnutls=no { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You requested libgnutls support, but it doesn't seem to be installed." >&5 $as_echo "$as_me: WARNING: You requested libgnutls support, but it doesn't seem to be installed." >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You are building without libgnutls support. gurlchecker will not be able to do HTTPS check..." >&5 $as_echo "$as_me: WARNING: You are building without libgnutls support. gurlchecker will not be able to do HTTPS check..." >&2;} fi echo "*****************************************" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PACKAGE" >&5 $as_echo_n "checking for PACKAGE... " >&6; } if test -n "$PACKAGE_CFLAGS"; then pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PACKAGE_LIBS"; then pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$pkg_modules" 2>&1` else PACKAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "$pkg_modules" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PACKAGE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements ($pkg_modules) were not met: $PACKAGE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ac_config_files="$ac_config_files Makefile doc/Makefile po/Makefile.in ui/Makefile src/Makefile stylesheets/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, we kill variables containing newlines. # 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. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end 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" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} 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}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $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} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 IFS=$as_save_IFS ;; 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; 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 || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "ui/Makefile") CONFIG_FILES="$CONFIG_FILES ui/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "stylesheets/Makefile") CONFIG_FILES="$CONFIG_FILES stylesheets/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # 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. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_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=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # 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 cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Whether or not to build static libraries. build_old_libs=$enable_static # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # 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 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # 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 # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # 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 # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # 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 # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # 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 # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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 # 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 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # 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 # 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 # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # 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 a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # 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 DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # 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 # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_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 # 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 # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_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 _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # 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 || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " ==================================================================== gURLChecker $VERSION, graphical links checker for GNOME ==================================================================== prefix : ${prefix} source code location : ${srcdir} data location : ${datadir} compiler : ${CC} cflags : ${CFLAGS} maintainer mode : ${USE_MAINTAINER_MODE} Google Chrome bookmarks (libjson-glib) : ${want_json} Firefox bookmarks (libsqlite3) : ${want_sqlite3} SSL layer (libgnutls) : ${want_gnutls} HTML validation (libtidy) : ${want_tidy} CSS2 validation (libcroco) : ${want_croco} Virii scan (libclamav) : ${want_clamav} Generate GTK doc (gtkdoc) : ${enable_gtk_doc} " gurlchecker-0.13.1/INSTALL0000644000175000017500000002713611324170370012053 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *Note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. gurlchecker-0.13.1/stylesheets/0000755000175000017500000000000011530645400013445 500000000000000gurlchecker-0.13.1/stylesheets/Makefile.am0000644000175000017500000000020511323426724015424 00000000000000 CLEANFILES = *~ MAINTAINERCLEANFILES = Makefile.in stylesheetsdir = $(pkgdatadir)/stylesheets dist_stylesheets_DATA = uc_html.xsl gurlchecker-0.13.1/stylesheets/Makefile.in0000644000175000017500000003223011530645265015443 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = stylesheets DIST_COMMON = $(dist_stylesheets_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(stylesheetsdir)" DATA = $(dist_stylesheets_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLAMAV_FLAGS = @CLAMAV_FLAGS@ CLAMAV_LIBS = @CLAMAV_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROCO_CFLAGS = @CROCO_CFLAGS@ CROCO_FLAGS = @CROCO_FLAGS@ CROCO_LIBS = @CROCO_LIBS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNUTLS_FLAGS = @GNUTLS_FLAGS@ GNUTLS_LIBS = @GNUTLS_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_DOC_CFLAGS = @GTK_DOC_CFLAGS@ GTK_DOC_LIBS = @GTK_DOC_LIBS@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ JSON_CFLAGS = @JSON_CFLAGS@ JSON_FLAGS = @JSON_FLAGS@ JSON_LIBS = @JSON_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SQLITE3_CFLAGS = @SQLITE3_CFLAGS@ SQLITE3_FLAGS = @SQLITE3_FLAGS@ SQLITE3_LIBS = @SQLITE3_LIBS@ STRIP = @STRIP@ TIDY_FLAGS = @TIDY_FLAGS@ TIDY_LIBS = @TIDY_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CLEANFILES = *~ MAINTAINERCLEANFILES = Makefile.in stylesheetsdir = $(pkgdatadir)/stylesheets dist_stylesheets_DATA = uc_html.xsl all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu stylesheets/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu stylesheets/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_stylesheetsDATA: $(dist_stylesheets_DATA) @$(NORMAL_INSTALL) test -z "$(stylesheetsdir)" || $(MKDIR_P) "$(DESTDIR)$(stylesheetsdir)" @list='$(dist_stylesheets_DATA)'; test -n "$(stylesheetsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(stylesheetsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(stylesheetsdir)" || exit $$?; \ done uninstall-dist_stylesheetsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_stylesheets_DATA)'; test -n "$(stylesheetsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(stylesheetsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(stylesheetsdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(stylesheetsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_stylesheetsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_stylesheetsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_stylesheetsDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_stylesheetsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gurlchecker-0.13.1/stylesheets/uc_html.xsl0000644000175000017500000001641111345266143015562 00000000000000

gURLChecker Project Report

Main project URL :

Total : links discovered
Checked : links really checked
Goods :
Bads : (Both not found and restricted)
Timeouts :
Malformed :
Ignored :

  • Good Bad Timeout Ignored Malformed Restricted - [...]
    TODO :
    VIRUS WARNING :
    gurlchecker-0.13.1/config.guess0000755000175000017500000012763711530645265013362 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. timestamp='2009-12-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gurlchecker-0.13.1/Makefile.in0000644000175000017500000007317511530645266013105 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ INSTALL NEWS THANKS TODO config.guess config.sub depcomp \ install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(DESKTOPdir)" \ "$(DESTDIR)$(licensedir)" NROFF = nroff MANS = $(man1_MANS) DATA = $(DESKTOP_DATA) $(license_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLAMAV_FLAGS = @CLAMAV_FLAGS@ CLAMAV_LIBS = @CLAMAV_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROCO_CFLAGS = @CROCO_CFLAGS@ CROCO_FLAGS = @CROCO_FLAGS@ CROCO_LIBS = @CROCO_LIBS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNUTLS_FLAGS = @GNUTLS_FLAGS@ GNUTLS_LIBS = @GNUTLS_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_DOC_CFLAGS = @GTK_DOC_CFLAGS@ GTK_DOC_LIBS = @GTK_DOC_LIBS@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ JSON_CFLAGS = @JSON_CFLAGS@ JSON_FLAGS = @JSON_FLAGS@ JSON_LIBS = @JSON_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SQLITE3_CFLAGS = @SQLITE3_CFLAGS@ SQLITE3_FLAGS = @SQLITE3_FLAGS@ SQLITE3_LIBS = @SQLITE3_LIBS@ STRIP = @STRIP@ TIDY_FLAGS = @TIDY_FLAGS@ TIDY_LIBS = @TIDY_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src stylesheets po doc ui man1_MANS = gurlchecker.1 ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ $(DESKTOP_IN_FILES) \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ $(PACKAGE).1 \ FAQ \ CONTRIBUTORS CLEANFILES = *~ DISTCLEANFILES = \ $(DESKTOP_DATA) \ intltool-extract \ intltool-update \ intltool-merge MAINTAINERCLEANFILES = \ aclocal.m4 \ config.h.in \ config.guess \ config.sub \ depcomp \ configure \ install-sh \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ ltmain.sh \ missing \ mkinstalldirs \ Makefile.in \ $(PACKAGE)-*.tar.gz DESKTOP_IN_FILES = gurlchecker.desktop.in DESKTOPdir = $(datadir)/applications DESKTOP_DATA = $(DESKTOP_IN_FILES:.desktop.in=.desktop) licensedir = $(datadir)/doc/$(PACKAGE) license_DATA = COPYING all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-man1: $(man1_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-DESKTOPDATA: $(DESKTOP_DATA) @$(NORMAL_INSTALL) test -z "$(DESKTOPdir)" || $(MKDIR_P) "$(DESTDIR)$(DESKTOPdir)" @list='$(DESKTOP_DATA)'; test -n "$(DESKTOPdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(DESKTOPdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(DESKTOPdir)" || exit $$?; \ done uninstall-DESKTOPDATA: @$(NORMAL_UNINSTALL) @list='$(DESKTOP_DATA)'; test -n "$(DESKTOPdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(DESKTOPdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(DESKTOPdir)" && rm -f $$files install-licenseDATA: $(license_DATA) @$(NORMAL_INSTALL) test -z "$(licensedir)" || $(MKDIR_P) "$(DESTDIR)$(licensedir)" @list='$(license_DATA)'; test -n "$(licensedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(licensedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(licensedir)" || exit $$?; \ done uninstall-licenseDATA: @$(NORMAL_UNINSTALL) @list='$(license_DATA)'; test -n "$(licensedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(licensedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(licensedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(MANS) $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(DESKTOPdir)" "$(DESTDIR)$(licensedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-DESKTOPDATA install-licenseDATA install-man install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-DESKTOPDATA uninstall-licenseDATA \ uninstall-man uninstall-man: uninstall-man1 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-DESKTOPDATA install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-licenseDATA install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-DESKTOPDATA \ uninstall-am uninstall-licenseDATA uninstall-man \ uninstall-man1 @INTLTOOL_DESKTOP_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gurlchecker-0.13.1/missing0000755000175000017500000002623311530645265012427 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gurlchecker-0.13.1/FAQ0000644000175000017500000000722711330647755011370 00000000000000************************************ How can I test gurlchecker from SVN? ************************************ ----- $ svn checkout svn://labs.libre-entreprise.org/svnroot/gurlchecker/trunk gurlchecker $ cd gurlchecker/ $ ./autogen.sh --prefix=/usr $ make $ su -c "make install" $ /usr/bin/gurlchecker ----- ************************************************************************* When I try to compile CVS files I have a error from autogen.sh telling me that my automake/autoconf/libtool/gtkdoc version if not ok! ************************************************************************* If you have some problems with "autogen.sh", just delete the following last lines: ----- REQUIRED_AUTOMAKE_VERSION=1.8 \ REQUIRED_AUTOCONF_VERSION=2.50 \ REQUIRED_LIBTOOL_VERSION=1.5 \ REQUIRED_GTK_DOC_VERSION=1.1 \ ----- and try again. ************************************************************ How can I build gurlchecker with/without libsqlite3 support? ************************************************************ Just pass "--disable-sqlite3" to ./configure. **************************************************** How can I build gurlchecker without gtk-doc support? **************************************************** Just pass "--disable-gtk-doc" to ./configure. *********************************************************** How can I build gurlchecker with/without libclamav support? *********************************************************** Just pass "--disable-clamav" to ./configure. ***************************************************** How can I build gurlchecker without libcroco support? ***************************************************** Just pass "--disable-croco" to ./configure. **************************************************** How can I build gurlchecker without libtidy support? **************************************************** Just pass "--disable-tidy" to ./configure. ************************************************ How can I build gurlchecker without SSL support? ************************************************ Just pass "--disable-gnutls" to ./configure. ***************************************************************************** Why gurlchecker does not correctly handle the RECTANGLE attribute of IMG tag? ***************************************************************************** The RECTANGLE attribute is not in HTML 4 specification. Response from xml@gnome.org (gurlchecker use libxml2 to parse HTML) where: ----- from Malcolm Tredinnick Reading the HTML specification (for HTML 4.01), it looks to me like img elements can take precisely zero rectangle attributes (i.e. it is not a valid attribute). So anything you get back in the above situation would be purely a bonus. ----- ----- from Morus Walter depends what you call HTML. If you look at the html 4.01 spec you won't find any rectangle attribute on img at all. And, since HTML is based on SGML you can never have any element hanging more than one instance of any attribute. On the other hand, HTML as it is found on the web often is just tag soup and I wouldn't be surprised if some browsers recognice such constructs or some browser vendors suggested such syntax in the past. OTOH I didn't find a rectangle attribute for any element in the rather long list of html dtds on my system. The only occurences of rectangle is found in ie-2.0.dtd and ie-3.0.dtd where it is used as an attribute value. You cannot expect libxml2 to parse that. ----- ************************************************************* I have installed libxml2 I still have errors at compile time! ************************************************************* You must have a libxml2 >= 2.6 gurlchecker-0.13.1/install-sh0000755000175000017500000003253711530645265013040 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gurlchecker-0.13.1/gurlchecker.desktop.in0000644000175000017500000000033010744343152015310 00000000000000[Desktop Entry] Encoding=UTF-8 _Name=gurlchecker _Comment=Graphical Web Links checker Exec=gurlchecker %u Terminal=false Type=Application Categories=GTK;GNOME;Application;Network; Icon=gurlchecker StartupNotify=true gurlchecker-0.13.1/CONTRIBUTORS0000644000175000017500000000007710744343152012702 00000000000000Stephane Loeuillet gurlchecker-0.13.1/config.h.in0000644000175000017500000000474011530645264013051 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Define gettext package */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_GNUTLS_GNUTLS_H /* Define to 1 if you have the header file. */ #undef HAVE_GNUTLS_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TIDY_H /* Define to 1 if you have the header file. */ #undef HAVE_TIDY_TIDY_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION gurlchecker-0.13.1/m4/0000755000175000017500000000000011530645400011411 500000000000000gurlchecker-0.13.1/m4/intltool.m40000644000175000017500000002421511530645257013455 00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) gurlchecker-0.13.1/m4/lt~obsolete.m40000644000175000017500000001311311530645257014156 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) gurlchecker-0.13.1/m4/libtool.m40000644000175000017500000077464711530645257013302 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_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. 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 delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -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 Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # 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 cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_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 _LT_EOF ;; esac _LT_PROG_LTMAIN # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -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${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -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${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_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 <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_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-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|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-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; 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-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) 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_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[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 ;; sparc*-*solaris*) # 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 *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$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}\{0,1\} :&$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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker 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 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # 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* | cegcc*) # 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; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` 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` fi ;; 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 max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_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 <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #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 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); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_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* | cegcc*) 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="-ldld"], [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="-ldld"]) ]) ]) ]) ]) ]) ;; 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" wl=$lt_prog_compiler_wl 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_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 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_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 _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$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}\{0,1\} :&$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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $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 .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_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 _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_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 _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_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_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) 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" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_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. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) 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" 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' ;; aix[[4-9]]*) 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' 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* | cegcc*) # 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}${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`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 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 ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi 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 ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes 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' ;; interix[[3-9]]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $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' ;; netbsdelf*-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='NetBSD ld.elf_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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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" ;; rdos*) dynamic_linker=no ;; 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.3*) 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 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[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]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_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="m4_if([$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 <<_LT_EOF 1>&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 _LT_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 _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_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 _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_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])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 variants of GNU ld 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 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) 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|DragonFly)/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 ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; 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* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) 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=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) 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 ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) 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 _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_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" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # 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]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; 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 # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \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\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # 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 # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $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 <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_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_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 -rf 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 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_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_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # 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). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_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_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_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_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_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_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_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_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # 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). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_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_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_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_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_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_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # 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_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_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_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_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_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # 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. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_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}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_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_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[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 # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_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~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) 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_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_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]].*|aix[[5-9]]*) 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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 : else # We have old collect2 _LT_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_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_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_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_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_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_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_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_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_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_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*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_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_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_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}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_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' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_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} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_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_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_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* echo "$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_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [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]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl 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_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## 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... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=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]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # 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 $as_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 $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_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_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_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_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_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_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_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) 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]].*|aix[[5-9]]*) 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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 : else # We have old collect2 _LT_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_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_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_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_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_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_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_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_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) 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_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_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 "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_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_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_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 "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_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 -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # 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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_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::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | 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_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_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 "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_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 "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_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" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_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} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # 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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_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_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_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_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_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC 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 fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= 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... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); 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 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 "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${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 "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${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 "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=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]) _LT_TAGVAR(GCC, $1)="$G77" _LT_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... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=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]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## 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... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # 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. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([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 IFS=$as_save_IFS 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 && continue 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_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) gurlchecker-0.13.1/m4/ltsugar.m40000644000175000017500000001042411530645257013267 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) gurlchecker-0.13.1/m4/ltversion.m40000644000175000017500000000127711530645257013641 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) gurlchecker-0.13.1/m4/ltoptions.m40000644000175000017500000002724211530645257013647 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_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=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_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=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_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=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_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=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) gurlchecker-0.13.1/intltool-extract.in0000644000175000017500000000000011530645257014655 00000000000000gurlchecker-0.13.1/depcomp0000755000175000017500000004426711530645265012414 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gurlchecker-0.13.1/intltool-update.in0000644000175000017500000000000011530645257014465 00000000000000