]> gitweb.michael.orlitzky.com - dead/census-tools.git/blobdiff - lib/makefile
Add a new makefile for the third-party libraries.
[dead/census-tools.git] / lib / makefile
diff --git a/lib/makefile b/lib/makefile
new file mode 100644 (file)
index 0000000..4115134
--- /dev/null
@@ -0,0 +1,68 @@
+SHAPELY_URL=http://pypi.python.org/packages/source/S/Shapely/Shapely-1.0.14.tar.gz
+LP_SOLVE_LIB_URL=http://downloads.sourceforge.net/project/lpsolve/lpsolve/5.5.0.15/lp_solve_5.5.0.15_source.tar.gz
+LP_SOLVE_PYTHON_URL=http://downloads.sourceforge.net/project/lpsolve/lpsolve/5.5.0.15/lp_solve_5.5.0.15_Python_source.tar.gz
+
+
+all: lp_solve shapely
+
+
+clean:
+       rm -rf lp_solve
+       rm -rf lp_solve_5.5
+       rm -rf Shapely
+       rm -f  *.tar.gz
+
+
+shapely: ./Shapely/setup.py
+
+# We just need to check for any Shapely file here. There
+# is nothing special about setup.py.
+./Shapely/setup.py:
+       if [ ! -d Shapely ]; then                       \
+               wget -O shapely.tar.gz $(SHAPELY_URL);  \
+               tar -xvzf shapely.tar.gz;               \
+               rm shapely.tar.gz;                      \
+               mv Shapely* Shapely;                    \
+       fi;
+
+
+lp_solve: ./lp_solve/liblpsolve55.so ./lp_solve/lpsolve55.so
+
+
+# Patch Makefile.Linux so that it doesn't pass the -l
+# flag to flex. Double dollar signs are required to get
+# a single '$' within a makefile.
+LFLAGS_PATCH = sed -i 's/^LFLAGS = -L -l$$/LFLAGS = -L/'
+./lp_solve/liblpsolve55.so:
+       make lp_solve_lib_src
+       if [ -f lp_solve_5.5/Makefile.Linux ]; then \
+               $(LFLAGS_PATCH) lp_solve_5.5/Makefile.Linux;          \
+               mv lp_solve_5.5/Makefile.Linux lp_solve_5.5/Makefile; \
+       fi;
+       make -C lp_solve_5.5
+       mkdir -p lp_solve
+       mv lp_solve_5.5/lpsolve55/liblpsolve55.so ./lp_solve
+
+
+./lp_solve/lpsolve55.so:
+       make ./lp_solve/liblpsolve55.so lp_solve_python_src
+       cd lp_solve_5.5/extra/Python;                                 \
+       sed -i 's~lpsolve55/bin/\(ux\|win\)32~../lp_solve~' setup.py; \
+       python setup.py build;                                        \
+       mv build/lib.linux-*/* ../../../lp_solve/;
+
+
+lp_solve_lib_src:
+       if [ ! -d lp_solve_5.5 ]; then                           \
+               wget -O lp_solve.tar.gz $(LP_SOLVE_LIB_URL); \
+               tar -xvzf lp_solve.tar.gz;                   \
+               rm lp_solve.tar.gz;                          \
+       fi;
+
+
+lp_solve_python_src: lp_solve_lib_src
+       if [ ! -d lp_solve_5.5/extra ]; then                           \
+               wget -O lp_solve_python.tar.gz $(LP_SOLVE_PYTHON_URL); \
+               tar -xvzf lp_solve_python.tar.gz;                      \
+               rm lp_solve_python.tar.gz;                             \
+       fi;