diff --git a/android/BOINC/AndroidManifest.xml b/android/BOINC/AndroidManifest.xml index 68ea58a7c6..00421b10ce 100644 --- a/android/BOINC/AndroidManifest.xml +++ b/android/BOINC/AndroidManifest.xml @@ -34,7 +34,7 @@ android:allowBackup="false"> diff --git a/android/BOINC/src/edu/berkeley/boinc/MainActivity.java b/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java similarity index 98% rename from android/BOINC/src/edu/berkeley/boinc/MainActivity.java rename to android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java index 059b6cdafa..6a88dbddb7 100644 --- a/android/BOINC/src/edu/berkeley/boinc/MainActivity.java +++ b/android/BOINC/src/edu/berkeley/boinc/BOINCActivity.java @@ -38,7 +38,7 @@ import android.widget.LinearLayout; import android.widget.TabHost; import android.widget.TabHost.TabSpec; -public class MainActivity extends TabActivity { +public class BOINCActivity extends TabActivity { private final String TAG = "MainActivity"; @@ -250,7 +250,7 @@ public class MainActivity extends TabActivity { Log.d(TAG,"tab layout setup done"); - MainActivity.logMessage(this, TAG, "tab setup finished"); + BOINCActivity.logMessage(this, TAG, "tab setup finished"); } // triggered by click on noproject_warning, starts login activity diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientRemoteService.java b/android/BOINC/src/edu/berkeley/boinc/client/ClientRemoteService.java index dfe4dd718c..a14c82600c 100644 --- a/android/BOINC/src/edu/berkeley/boinc/client/ClientRemoteService.java +++ b/android/BOINC/src/edu/berkeley/boinc/client/ClientRemoteService.java @@ -6,6 +6,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.PackageManager.NameNotFoundException; import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -41,6 +42,17 @@ public class ClientRemoteService extends Service { return mIsMonitorBound; } + @Override + public int getVersionCode() throws RemoteException { + Integer version = 0; + try { + version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; + } catch (NameNotFoundException e) { + Log.e(TAG,"could not retrieve own version code!",e); + } + return version; + } + @Override public boolean attachProject(String packageName, String url, String id, String pwd) throws RemoteException { // TODO store packageName in AppPreferences diff --git a/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java b/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java index e12dbd80c5..2971e81007 100644 --- a/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java +++ b/android/BOINC/src/edu/berkeley/boinc/client/ClientStatus.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import android.content.Context; import android.content.Intent; import android.util.Log; -import edu.berkeley.boinc.MainActivity; +import edu.berkeley.boinc.BOINCActivity; import edu.berkeley.boinc.definitions.CommonDefs; import edu.berkeley.boinc.rpc.CcStatus; import edu.berkeley.boinc.rpc.GlobalPreferences; @@ -109,7 +109,7 @@ public class ClientStatus { if(!computingParseError && !networkParseError && !setupStatusParseError) { fire(); // broadcast that status has changed } else { - MainActivity.logMessage(ctx, TAG, "discard status change due to parse error" + computingParseError + computingStatus + computingSuspendReason + "-" + networkParseError + networkStatus + networkSuspendReason + "-" + setupStatusParseError); + BOINCActivity.logMessage(ctx, TAG, "discard status change due to parse error" + computingParseError + computingStatus + computingSuspendReason + "-" + networkParseError + networkStatus + networkSuspendReason + "-" + setupStatusParseError); } } @@ -183,7 +183,7 @@ public class ClientStatus { } catch (Exception e) { setupStatusParseError = true; Log.e(TAG, "parseProjectStatus - Exception", e); - MainActivity.logMessage(ctx, TAG, "error parsing setup status (project state)"); + BOINCActivity.logMessage(ctx, TAG, "error parsing setup status (project state)"); } } @@ -228,7 +228,7 @@ public class ClientStatus { } } catch (Exception e) { Log.e(TAG, "parseComputingStatus - Exception", e); - MainActivity.logMessage(ctx, TAG, "error - client computing status"); + BOINCActivity.logMessage(ctx, TAG, "error - client computing status"); } } @@ -255,7 +255,7 @@ public class ClientStatus { } } catch (Exception e) { Log.e(TAG, "parseNetworkStatus - Exception", e); - MainActivity.logMessage(ctx, TAG, "error - client network status"); + BOINCActivity.logMessage(ctx, TAG, "error - client network status"); } } diff --git a/android/BOINC/src/edu/berkeley/boinc/client/IClientRemoteService.aidl b/android/BOINC/src/edu/berkeley/boinc/client/IClientRemoteService.aidl index 949a9f6e21..50ab5a0c00 100644 --- a/android/BOINC/src/edu/berkeley/boinc/client/IClientRemoteService.aidl +++ b/android/BOINC/src/edu/berkeley/boinc/client/IClientRemoteService.aidl @@ -33,6 +33,11 @@ interface IClientRemoteService { /* Checks whether interface recipient is ready to serve commands. * returns success*/ boolean isReady(); + + /* Returns the version code specified in AndroidManifest.xml. + * can be used to detect new AIDL versions. + * returns version code as Integer*/ + int getVersionCode(); //== project management == /* Attach project to BOINC application. diff --git a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java index 0d99860b53..ee4799e421 100644 --- a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java +++ b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java @@ -38,7 +38,7 @@ import android.os.IBinder; import android.util.Log; import android.widget.Toast; import edu.berkeley.boinc.LoginActivity; -import edu.berkeley.boinc.MainActivity; +import edu.berkeley.boinc.BOINCActivity; import edu.berkeley.boinc.AppPreferences; import edu.berkeley.boinc.R; import edu.berkeley.boinc.rpc.AccountIn; @@ -179,7 +179,7 @@ public class Monitor extends Service{ public void restartMonitor() { if(Monitor.monitorActive) { //monitor is already active, launch cancelled - MainActivity.logMessage(getApplicationContext(), TAG, "monitor active - restart cancelled"); + BOINCActivity.logMessage(getApplicationContext(), TAG, "monitor active - restart cancelled"); } else { Log.d(TAG,"restart monitor"); @@ -418,7 +418,7 @@ public class Monitor extends Service{ if((status!=null)&&(results!=null)&&(projects!=null)&&(transfers!=null)&&(clientPrefs!=null)) { Monitor.clientStatus.setClientStatus(status,results,projects,transfers,clientPrefs,msgs); } else { - MainActivity.logMessage(getApplicationContext(), TAG, "client status connection problem"); + BOINCActivity.logMessage(getApplicationContext(), TAG, "client status connection problem"); } Intent clientStatus = new Intent(); @@ -437,7 +437,7 @@ public class Monitor extends Service{ @Override protected void onProgressUpdate(String... arg0) { Log.d(TAG+"-onProgressUpdate",arg0[0]); - MainActivity.logMessage(getApplicationContext(), TAG, arg0[0]); + BOINCActivity.logMessage(getApplicationContext(), TAG, arg0[0]); } @Override @@ -487,7 +487,7 @@ public class Monitor extends Service{ @Override protected void onProgressUpdate(String... arg0) { Log.d(TAG+"-onProgressUpdate",arg0[0]); - MainActivity.logMessage(getApplicationContext(), TAG, arg0[0]); + BOINCActivity.logMessage(getApplicationContext(), TAG, arg0[0]); } private Boolean startUp() { @@ -509,7 +509,7 @@ public class Monitor extends Service{ Boolean connected = false; Integer counter = 0; while(!(connected=connectClient()) && (counter diff --git a/android/ProjectApp/res/values/client_configuration.xml b/android/ProjectApp/res/values/client_configuration.xml index 37ab537dff..22dd5e0243 100644 --- a/android/ProjectApp/res/values/client_configuration.xml +++ b/android/ProjectApp/res/values/client_configuration.xml @@ -23,6 +23,6 @@ edu.berkeley.boinc http://fridgelike.com/boinc/BOINC.apk edu.berkeley.boinc.client.ClientRemoteService - edu.berkeley.boinc.AndroidBOINCActivity + edu.berkeley.boinc.BOINCActivity \ No newline at end of file diff --git a/android/ProjectApp/src/com/example/projectapp/MainActivity.java b/android/ProjectApp/src/com/example/projectapp/ProjectExampleMainActivity.java similarity index 98% rename from android/ProjectApp/src/com/example/projectapp/MainActivity.java rename to android/ProjectApp/src/com/example/projectapp/ProjectExampleMainActivity.java index 5b9974213e..f09f32d9a1 100644 --- a/android/ProjectApp/src/com/example/projectapp/MainActivity.java +++ b/android/ProjectApp/src/com/example/projectapp/ProjectExampleMainActivity.java @@ -35,7 +35,7 @@ import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; -public class MainActivity extends Activity implements OnClickListener{ +public class ProjectExampleMainActivity extends Activity implements OnClickListener{ private final String TAG = "MainActivity"; diff --git a/android/ProjectApp/src/edu/berkeley/boinc/client/IClientRemoteService.aidl b/android/ProjectApp/src/edu/berkeley/boinc/client/IClientRemoteService.aidl index 949a9f6e21..50ab5a0c00 100644 --- a/android/ProjectApp/src/edu/berkeley/boinc/client/IClientRemoteService.aidl +++ b/android/ProjectApp/src/edu/berkeley/boinc/client/IClientRemoteService.aidl @@ -33,6 +33,11 @@ interface IClientRemoteService { /* Checks whether interface recipient is ready to serve commands. * returns success*/ boolean isReady(); + + /* Returns the version code specified in AndroidManifest.xml. + * can be used to detect new AIDL versions. + * returns version code as Integer*/ + int getVersionCode(); //== project management == /* Attach project to BOINC application. diff --git a/clientgui/BOINCInternetFSHandler.cpp b/clientgui/BOINCInternetFSHandler.cpp index f764c19c8f..54031306c0 100644 --- a/clientgui/BOINCInternetFSHandler.cpp +++ b/clientgui/BOINCInternetFSHandler.cpp @@ -23,10 +23,10 @@ #include "util.h" -class MemFSHashObj : public wxObject +class BOINCMemFSHashObj : public wxObject { public: - MemFSHashObj(wxInputStream* stream, const wxString& mime, const wxString& key) + BOINCMemFSHashObj(wxInputStream* stream, const wxString& mime, const wxString& key) { if (stream) { wxMemoryOutputStream out; @@ -43,7 +43,7 @@ public: m_Time = wxDateTime::Now(); } - virtual ~MemFSHashObj() + virtual ~BOINCMemFSHashObj() { delete[] m_Data; } @@ -54,7 +54,7 @@ public: wxDateTime m_Time; wxString m_Key; - DECLARE_NO_COPY_CLASS(MemFSHashObj) + DECLARE_NO_COPY_CLASS(BOINCMemFSHashObj) }; @@ -510,7 +510,7 @@ wxFSFile* CBOINCInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wx if (m_Hash) { - MemFSHashObj* obj = (MemFSHashObj*)m_Hash->Get(strLocation); + BOINCMemFSHashObj* obj = (BOINCMemFSHashObj*)m_Hash->Get(strLocation); if (obj == NULL) { wxString right = GetProtocol(strLocation) + wxT(":") + StripProtocolAnchor(strLocation); @@ -533,7 +533,7 @@ wxFSFile* CBOINCInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wx strMIME = GetMimeTypeFromExt(strLocation); } - obj = new MemFSHashObj(m_InputStream, strMIME, strLocation); + obj = new BOINCMemFSHashObj(m_InputStream, strMIME, strLocation); delete m_InputStream; m_InputStream = NULL; @@ -596,7 +596,7 @@ void CBOINCInternetFSHandler::UnchacheMissingItems() { wxHashTable::Node* node = m_Hash->Next(); for(;;) { if (node == NULL) break; // End of cache - MemFSHashObj* obj = (MemFSHashObj*)node->GetData(); + BOINCMemFSHashObj* obj = (BOINCMemFSHashObj*)node->GetData(); // We must get next node before deleting this one node = m_Hash->Next(); if (obj->m_Len == 0) { diff --git a/clientgui/ProjectInfoPage.cpp b/clientgui/ProjectInfoPage.cpp index 083b9c331e..dfb00fed43 100644 --- a/clientgui/ProjectInfoPage.cpp +++ b/clientgui/ProjectInfoPage.cpp @@ -42,6 +42,7 @@ #include "res/windowsicon.xpm" #include "res/macosicon.xpm" #include "res/linuxicon.xpm" +#include "res/freebsdicon.xpm" #include "res/atiicon.xpm" #include "res/nvidiaicon.xpm" #include "res/blankicon.xpm" @@ -59,6 +60,7 @@ class CProjectInfo : public wxObject m_bProjectSupportsWindows = false; m_bProjectSupportsMac = false; m_bProjectSupportsLinux = false; + m_bProjectSupportsFreeBSD = false; m_bProjectSupportsCUDA = false; m_bProjectSupportsCAL = false; } @@ -74,6 +76,7 @@ public: bool m_bProjectSupportsWindows; bool m_bProjectSupportsMac; bool m_bProjectSupportsLinux; + bool m_bProjectSupportsFreeBSD; bool m_bProjectSupportsCUDA; bool m_bProjectSupportsCAL; }; @@ -158,6 +161,7 @@ bool CProjectInfoPage::Create( CBOINCBaseWizard* parent ) m_pProjectDetailsSupportedPlatformWindowsCtrl = NULL; m_pProjectDetailsSupportedPlatformMacCtrl = NULL; m_pProjectDetailsSupportedPlatformLinuxCtrl = NULL; + m_pProjectDetailsSupportedPlatformFreeBSDCtrl = NULL; m_pProjectDetailsSupportedPlatformATICtrl = NULL; m_pProjectDetailsSupportedPlatformNvidiaCtrl = NULL; m_pProjectDetailsSupportedPlatformBlankCtrl = NULL; @@ -300,6 +304,9 @@ void CProjectInfoPage::CreateControls() m_pProjectDetailsSupportedPlatformLinuxCtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("linuxicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 ); itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformLinuxCtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5); + m_pProjectDetailsSupportedPlatformFreeBSDCtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("freebsdicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 ); + itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformFreeBSDCtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5); + m_pProjectDetailsSupportedPlatformATICtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("atiicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 ); itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformATICtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5); @@ -389,6 +396,11 @@ wxBitmap CProjectInfoPage::GetBitmapResource( const wxString& name ) wxBitmap bitmap(Linux_xpm); return bitmap; } + else if (name == wxT("freebsdicon.xpm")) + { + wxBitmap bitmap(FreeBSD_xpm); + return bitmap; + } else if (name == wxT("atiicon.xpm")) { wxBitmap bitmap(atiicon_xpm); @@ -449,10 +461,12 @@ void CProjectInfoPage::OnProjectCategorySelected( wxCommandEvent& WXUNUSED(event } // Set the first item to be the selected item and then pop the next event. - m_pProjectsCtrl->SetSelection(0); - wxCommandEvent evtEvent(wxEVT_COMMAND_LISTBOX_SELECTED, ID_PROJECTS); - ProcessEvent(evtEvent); - + if (m_pProjectsCtrl->GetCount() > 0) { + m_pProjectsCtrl->SetSelection(0); + wxCommandEvent evtEvent(wxEVT_COMMAND_LISTBOX_SELECTED, ID_PROJECTS); + ProcessEvent(evtEvent); + } + wxLogTrace(wxT("Function Start/End"), wxT("CProjectInfoPage::OnProjectCategorySelected - Function End")); } @@ -486,11 +500,13 @@ void CProjectInfoPage::OnProjectSelected( wxCommandEvent& WXUNUSED(event) ) { m_pProjectDetailsSupportedPlatformWindowsCtrl->Hide(); m_pProjectDetailsSupportedPlatformMacCtrl->Hide(); m_pProjectDetailsSupportedPlatformLinuxCtrl->Hide(); + m_pProjectDetailsSupportedPlatformFreeBSDCtrl->Hide(); m_pProjectDetailsSupportedPlatformATICtrl->Hide(); m_pProjectDetailsSupportedPlatformNvidiaCtrl->Hide(); if (pProjectInfo->m_bProjectSupportsWindows) m_pProjectDetailsSupportedPlatformWindowsCtrl->Show(); if (pProjectInfo->m_bProjectSupportsMac) m_pProjectDetailsSupportedPlatformMacCtrl->Show(); if (pProjectInfo->m_bProjectSupportsLinux) m_pProjectDetailsSupportedPlatformLinuxCtrl->Show(); + if (pProjectInfo->m_bProjectSupportsFreeBSD) m_pProjectDetailsSupportedPlatformFreeBSDCtrl->Show(); if (pProjectInfo->m_bProjectSupportsCAL) m_pProjectDetailsSupportedPlatformATICtrl->Show(); if (pProjectInfo->m_bProjectSupportsCUDA) m_pProjectDetailsSupportedPlatformNvidiaCtrl->Show(); @@ -556,6 +572,7 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) { wxASSERT(m_pProjectDetailsSupportedPlatformWindowsCtrl); wxASSERT(m_pProjectDetailsSupportedPlatformMacCtrl); wxASSERT(m_pProjectDetailsSupportedPlatformLinuxCtrl); + wxASSERT(m_pProjectDetailsSupportedPlatformFreeBSDCtrl); wxASSERT(m_pProjectDetailsSupportedPlatformATICtrl); wxASSERT(m_pProjectDetailsSupportedPlatformNvidiaCtrl); wxASSERT(m_pProjectURLStaticCtrl); @@ -676,6 +693,10 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) { if (strProjectPlatform.Find(_T("linux")) != wxNOT_FOUND) { pProjectInfo->m_bProjectSupportsLinux = true; } + + if (strProjectPlatform.Find(_T("freebsd")) != wxNOT_FOUND) { + pProjectInfo->m_bProjectSupportsFreeBSD = true; + } if (strProjectPlatform.Find(_T("[cuda")) != wxNOT_FOUND) { pProjectInfo->m_bProjectSupportsCUDA = true; @@ -701,10 +722,11 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) { wxLogTrace( wxT("Function Status"), - wxT("CProjectInfoPage::OnPageChanged - Windows: '%d', Mac: '%d', Linux: '%d', Nvidia: '%d', ATI: '%d', Platform: '%d'"), + wxT("CProjectInfoPage::OnPageChanged - Windows: '%d', Mac: '%d', Linux: '%d', FreeBSD: '%d', Nvidia: '%d', ATI: '%d', Platform: '%d'"), pProjectInfo->m_bProjectSupportsWindows, pProjectInfo->m_bProjectSupportsMac, pProjectInfo->m_bProjectSupportsLinux, + pProjectInfo->m_bProjectSupportsFreeBSD, pProjectInfo->m_bProjectSupportsCUDA, pProjectInfo->m_bProjectSupportsCAL, pProjectInfo->m_bSupportedPlatformFound diff --git a/clientgui/ProjectInfoPage.h b/clientgui/ProjectInfoPage.h index 99fec67324..14e78b13c1 100644 --- a/clientgui/ProjectInfoPage.h +++ b/clientgui/ProjectInfoPage.h @@ -126,6 +126,7 @@ public: wxStaticBitmap* m_pProjectDetailsSupportedPlatformWindowsCtrl; wxStaticBitmap* m_pProjectDetailsSupportedPlatformMacCtrl; wxStaticBitmap* m_pProjectDetailsSupportedPlatformLinuxCtrl; + wxStaticBitmap* m_pProjectDetailsSupportedPlatformFreeBSDCtrl; wxStaticBitmap* m_pProjectDetailsSupportedPlatformATICtrl; wxStaticBitmap* m_pProjectDetailsSupportedPlatformNvidiaCtrl; wxStaticBitmap* m_pProjectDetailsSupportedPlatformBlankCtrl; diff --git a/clientgui/res/freebsdicon.xpm b/clientgui/res/freebsdicon.xpm new file mode 100644 index 0000000000..7bce631c45 --- /dev/null +++ b/clientgui/res/freebsdicon.xpm @@ -0,0 +1,154 @@ +/* XPM */ +static const char *FreeBSD_xpm[] = { +"14 14 137 2", +" c None", +". c #99120F", +"+ c #EBA49E", +"@ c #B4755C", +"# c #B2B3B2", +"$ c #F1F1F1", +"% c #F4F4F5", +"& c #F2EAEA", +"* c #F2EBEA", +"= c #C0C3C2", +"- c #AD8674", +"; c #EFBAB4", +"> c #9E1411", +", c #8E0403", +"' c #D63128", +") c #FFF0ED", +"! c #FFFFFF", +"~ c #FEFDF8", +"{ c #FEFBF9", +"] c #FDF9FA", +"^ c #D58686", +"/ c #EAB0A4", +"( c #FFF4F2", +"_ c #DE6059", +": c #900908", +"< c #952C2C", +"[ c #DDABAA", +"} c #FDF3F0", +"| c #FCE9DC", +"1 c #FCE9DE", +"2 c #FCEBDA", +"3 c #F0D4D2", +"4 c #FACDC0", +"5 c #F86D62", +"6 c #AB0903", +"7 c #A1494A", +"8 c #7A7475", +"9 c #FFECE5", +"0 c #FFFAF7", +"a c #FDDFD8", +"b c #FCB49F", +"c c #F79C7D", +"d c #E38581", +"e c #DA8E8F", +"f c #D06762", +"g c #C10A03", +"h c #B54D4B", +"i c #80797A", +"j c #DCCACB", +"k c #F7C7B3", +"l c #FEEDD9", +"m c #F66541", +"n c #F71C0B", +"o c #E20601", +"p c #C40303", +"q c #AD0303", +"r c #991212", +"s c #852222", +"t c #804645", +"u c #C1AEA6", +"v c #D9968E", +"w c #F39B62", +"x c #F57B39", +"y c #E80200", +"z c #EA0000", +"A c #D00000", +"B c #BB0000", +"C c #A50000", +"D c #8F0000", +"E c #810101", +"F c #680F10", +"G c #BC806E", +"H c #C66F66", +"I c #E42700", +"J c #EB3001", +"K c #DF0800", +"L c #DC0000", +"M c #BD0000", +"N c #AB0000", +"O c #9E0000", +"P c #AD0000", +"Q c #940000", +"R c #740000", +"S c #D89378", +"T c #C48B8A", +"U c #CA0E00", +"V c #E22401", +"W c #DB1701", +"X c #CD0000", +"Y c #A80000", +"Z c #A30000", +"` c #BC0000", +" . c #B20000", +".. c #750000", +"+. c #9F1808", +"@. c #F7EBB8", +"#. c #B9B9B9", +"$. c #A80C02", +"%. c #D61802", +"&. c #DD2302", +"*. c #CE1301", +"=. c #920000", +"-. c #B70000", +";. c #B00000", +">. c #860001", +",. c #E5824E", +"'. c #C1C2B0", +"). c #B46866", +"!. c #C40A00", +"~. c #D01701", +"{. c #D52402", +"]. c #BE2102", +"^. c #BC1101", +"/. c #B60F00", +"(. c #CC2603", +"_. c #D8450F", +":. c #E08F7C", +"<. c #7A6F6F", +"[. c #B22724", +"}. c #C20600", +"|. c #CC1701", +"1. c #CA2302", +"2. c #DC2F02", +"3. c #E63B02", +"4. c #EE4200", +"5. c #F58C5C", +"6. c #88736D", +"7. c #6B6B6A", +"8. c #B2302B", +"9. c #C8160E", +"0. c #D01E0B", +"a. c #E62F0A", +"b. c #E7480E", +"c. c #DF8E3B", +"d. c #74665F", +"e. c #622623", +"f. c #6B3626", +" ", +" . + @ # $ % & * = - ; > ", +" , ' ) ! ~ { ] ^ / ( _ : ", +" < [ } } | 1 2 3 4 5 6 7 ", +" 8 9 0 a b c d e f g h i ", +" j k l m n o p q r s t u ", +" v w x y z A B C D E F G ", +" H I J K L M N O P Q R S ", +" T U V W X Y Z ` ...+.@. ", +" #.$.%.&.*.=.-.;.C >.,.'. ", +" ).!.~.{.].^./.(._.:. ", +" <.[.}.|.1.2.3.4.5.6. ", +" 7.8.9.0.a.b.c.d. ", +" e.f. "}; \ No newline at end of file diff --git a/m4/check_ssl.m4 b/m4/check_ssl.m4 index 0dc1f3bf00..49b64c3f9f 100644 --- a/m4/check_ssl.m4 +++ b/m4/check_ssl.m4 @@ -46,7 +46,11 @@ if test "x${SSL_LIBS}" = "x" ; then SSLDIR="${ssldir}" SSL_CFLAGS="-I$ssldir/include -I$ssldir/include/openssl"; SSL_CXXFLAGS="-I$ssldir/include -I$ssldir/include/openssl"; - SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto -ldl -lz" + SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto" + AC_CHECK_LIB([dl], [dlopen], + [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"]) + AC_CHECK_LIB([z], [gzopen], + [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"]) break; fi if test -f "$dir/include/ssl.h"; then @@ -55,6 +59,10 @@ if test "x${SSL_LIBS}" = "x" ; then SSL_CFLAGS="-I$ssldir/include/" SSL_CXXFLAGS="-I$ssldir/include/" SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto" + AC_CHECK_LIB([dl], [dlopen], + [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"]) + AC_CHECK_LIB([z], [gzopen], + [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"]) break; fi done