From 3c54b82c5dba74c653c3405af62542b62d538ad1 Mon Sep 17 00:00:00 2001 From: REZGUI Mohamed Date: Mon, 27 Feb 2012 16:32:58 +0100 Subject: [PATCH 1/4] * Add required packages for Ubuntu * Remove all unecessary .gitignore * add libgexf for 64 bits architecture --- .gitignore | 2 +- README | 51 ++++++++++++++++++++++++++++++----- bin/.gitignore | 19 ------------- build/.gitignore | 19 ------------- docs/.gitignore | 19 ------------- lib/.gitignore | 19 ------------- lib/linux/.gitignore | 19 ------------- lib/linux/lib32/.gitignore | 19 ------------- lib/linux/lib64/.gitignore | 19 ------------- lib/linux/lib64/libgexf.a | Bin 0 -> 2212004 bytes lib/linux/lib64/libgexf.so | Bin 0 -> 774492 bytes lib/osx/.gitignore | 19 ------------- lib/osx/lib32/.gitignore | 19 ------------- lib/osx/lib64/.gitignore | 19 ------------- lib/windows/.gitignore | 19 ------------- lib/windows/lib32/.gitignore | 19 ------------- lib/windows/lib64/.gitignore | 19 ------------- resources/.gitignore | 19 ------------- share/.gitignore | 19 ------------- test/.gitignore | 19 ------------- thirdparty/.gitignore | 19 ------------- tools/.gitignore | 19 ------------- 22 files changed, 46 insertions(+), 349 deletions(-) delete mode 100644 bin/.gitignore delete mode 100644 build/.gitignore delete mode 100644 docs/.gitignore delete mode 100644 lib/.gitignore delete mode 100644 lib/linux/.gitignore delete mode 100644 lib/linux/lib32/.gitignore delete mode 100644 lib/linux/lib64/.gitignore create mode 100644 lib/linux/lib64/libgexf.a create mode 100755 lib/linux/lib64/libgexf.so delete mode 100644 lib/osx/.gitignore delete mode 100644 lib/osx/lib32/.gitignore delete mode 100644 lib/osx/lib64/.gitignore delete mode 100644 lib/windows/.gitignore delete mode 100644 lib/windows/lib32/.gitignore delete mode 100644 lib/windows/lib64/.gitignore delete mode 100644 resources/.gitignore delete mode 100644 share/.gitignore delete mode 100644 test/.gitignore delete mode 100644 thirdparty/.gitignore delete mode 100644 tools/.gitignore diff --git a/.gitignore b/.gitignore index a6d406a..6469e44 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,6 @@ Thumbs.db # lib #*.so* *.lib -*.a +#*.a *.la diff --git a/README b/README index d58026a..4e7aa85 100644 --- a/README +++ b/README @@ -39,16 +39,55 @@ 7. CONTRIBUTING == 1. PREREQUISITES == - + This project works on 32 bits and 64 bits environment. This project requires: + * Cross-platform Make (CMake) v2.6.2+ + > Fedora : + yum install cmake + > Ubuntu : + apt-get install cmake + * GNU Make or equivalent. + > Fedora : + yum install make + > Ubuntu : + apt-get install make + * GCC or an alternative, reasonably conformant C++ compiler. - * CPLEX [HEADERS and LIBRARIES] with licence (32 bits) - * Boost C++ Libraries v1.37+ [HEADERS and LIBRARIES] (32 bits) - * GEXF Library v0.1.2 (32 bits) - * XML2 Library v2.0+ (32 bits) - + > Fedora : + yum groupinstall "Development Tools" + > Ubuntu : + apt-get install build-essential + + * Boost C++ Libraries v1.37+ [HEADERS and LIBRARIES] + > Fedora : + + > Ubuntu : + apt-get install libboost-dev + + * XML2 Library v2.0+ + > Fedora : + + > Ubuntu : + apt-get install libxml2-dev + + * GLPK Library + > Fedora : + + > Ubuntu : + apt-get install libglpk-dev + + * LPSOLVE Library v5.5+ + > Fedora : + yum install suitesparse-devel + > Ubuntu : + apt-get install liblpsolve55-dev + + * CPLEX [HEADERS and LIBRARIES] with licence + + * GEXF Library v0.1.2 (provided in this project) + == 2. BUILDING == This project uses the Cross-platform Make (CMake) build system. However, we diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index 50995cb..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -*.so* -*.lib -*.a -*.la - diff --git a/build/.gitignore b/build/.gitignore deleted file mode 100644 index 50995cb..0000000 --- a/build/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -*.so* -*.lib -*.a -*.la - diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 50995cb..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -*.so* -*.lib -*.a -*.la - diff --git a/lib/.gitignore b/lib/.gitignore deleted file mode 100644 index 1f409cb..0000000 --- a/lib/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -#*.so* -*.lib -*.a -*.la - diff --git a/lib/linux/.gitignore b/lib/linux/.gitignore deleted file mode 100644 index 1f409cb..0000000 --- a/lib/linux/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -#*.so* -*.lib -*.a -*.la - diff --git a/lib/linux/lib32/.gitignore b/lib/linux/lib32/.gitignore deleted file mode 100644 index 1f409cb..0000000 --- a/lib/linux/lib32/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -#*.so* -*.lib -*.a -*.la - diff --git a/lib/linux/lib64/.gitignore b/lib/linux/lib64/.gitignore deleted file mode 100644 index 50995cb..0000000 --- a/lib/linux/lib64/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -#Eclipse -.project -.classpath -.settings -target - -# Random OS stuff -.DS_Store -Thumbs.db -*.bak -*.log -*~ - -# lib -*.so* -*.lib -*.a -*.la - diff --git a/lib/linux/lib64/libgexf.a b/lib/linux/lib64/libgexf.a new file mode 100644 index 0000000000000000000000000000000000000000..bfa566d18abe0c664b8ec79a3dd9a9ced750a495 GIT binary patch literal 2212004 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