[Singular] Initial import (#819264).

pcpa pcpa at fedoraproject.org
Tue Jul 10 23:05:34 UTC 2012


commit 2f1adeafc9abb36db34724a8f3b6ac0b870b1d92
Author: pcpa <paulo.cesar.pereira.de.andrade at gmail.com>
Date:   Tue Jul 10 20:05:15 2012 -0400

    Initial import (#819264).

 .gitignore                   |    1 +
 Singular-builddid.patch      |   37 ++++
 Singular-destdir.patch       |  320 ++++++++++++++++++++++++++++++++
 Singular-doc.patch           |  134 +++++++++++++
 Singular-headers.patch       |   37 ++++
 Singular-link.patch          |   43 +++++
 Singular-make-parallel.patch |   45 +++++
 Singular-python.patch        |   30 +++
 Singular-shared.patch        |   12 ++
 Singular-undefined.patch     |   47 +++++
 Singular.spec                |  421 ++++++++++++++++++++++++++++++++++++++++++
 sources                      |    1 +
 12 files changed, 1128 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..7ed82fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/Singular-3-1-3-3.tar.gz
diff --git a/Singular-builddid.patch b/Singular-builddid.patch
new file mode 100644
index 0000000..47046cd
--- /dev/null
+++ b/Singular-builddid.patch
@@ -0,0 +1,37 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 22:04:27.691046500 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 22:04:56.711047611 -0300
+@@ -488,10 +488,10 @@ feOptTS.inc: feOpt.cc mod2.h
+ 	rm -f feOptTS feOptTS.exe
+ 
+ mpsr.so: $(MPSR_SOURCES:.cc=.dl_o)
+-	$(LD) ${SLDFLAGS} -o $@ $^ -L${libdir} ${MP_LIBS} ${GLIBC_DYN_FIX}
++	$(LIBSINGULAR_LD) ${SLDFLAGS} -o $@ $^ -L${libdir} ${MP_LIBS} ${GLIBC_DYN_FIX}
+ 
+ dbmsr.so: $(DBMSR_SOURCES:.cc=.dl_o)
+-	$(LD) ${SLDFLAGS} -o $@ $^ ${GLIBC_DYN_FIX}
++	$(LIBSINGULAR_LD) ${SLDFLAGS} -o $@ $^ ${GLIBC_DYN_FIX}
+ 
+ # dynamic module for python bject support
+ pyobject.${MODULE_SUFFIX}: pyobject.dl_o
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig	2012-05-05 22:31:33.914108772 -0300
++++ Singular-3-1-3/kernel/Makefile.in	2012-05-05 22:31:47.063109274 -0300
+@@ -267,7 +267,7 @@ p_Procs_Dynamic.inc: p_Procs_Generate.cc
+ 	-rm -f p_Procs_Dynamic p_Procs_Dynamic.exe
+ 
+ p_Procs_%.so: p_Procs_Lib_%.dl_o
+-	$(LD) ${SLDFLAGS} -o $@ $^
++	$(CXX) ${SLDFLAGS} -o $@ $^
+ 
+ ##
+ ## install targets
+@@ -377,7 +377,7 @@ DEFSG		= -D at SING_UNAME@ @DEFS@ -DDL_TAIL
+ ##
+ 
+ p_Procs_%.sog: p_Procs_Lib_%.dl_og
+-	$(LD) ${SLDFLAGS} -o $@ $^
++	$(CXX) ${SLDFLAGS} -o $@ $^
+ 
+ p_Procs_Lib_%.dl_og : p_Procs_Lib.cc  p_Procs_Dynamic.og
+ 	${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
diff --git a/Singular-destdir.patch b/Singular-destdir.patch
new file mode 100644
index 0000000..a98eb7d
--- /dev/null
+++ b/Singular-destdir.patch
@@ -0,0 +1,320 @@
+diff -up Singular-3-1-3/factory/GNUmakefile.in.orig Singular-3-1-3/factory/GNUmakefile.in
+--- Singular-3-1-3/factory/GNUmakefile.in.orig	2012-05-05 16:41:35.218304727 -0300
++++ Singular-3-1-3/factory/GNUmakefile.in	2012-05-05 16:41:40.043304855 -0300
+@@ -635,45 +635,45 @@ installtest:	test_install
+ install install-libsingular:	$(installtargets)
+ 
+ install_all:    install libsingcf_p.a 
+-		-$(INSTALL_DATA) libsingcf_p.a $(libdir)/libsingcf_p.a 
++		-$(INSTALL_DATA) libsingcf_p.a $(DESTDIR)$(libdir)/libsingcf_p.a 
+ 
+ install-nolns: install
+ 
+ installcf:	cf
+-		$(MKINSTALLDIRS) $(libdir)
+-		$(MKINSTALLDIRS) $(includedir)
+-		$(MKINSTALLDIRS) $(templatedir)
+-		$(INSTALL_DATA) $(libfactory) $(libdir)/$(libfactory)
+-		-$(INSTALL_DATA) libsingcf_g.a $(libdir)/libsingcf_g.a
+-		-$(INSTALL_DATA) libsingcf_p.a $(libdir)/libsingcf_p.a
+-		$(INSTALL_DATA) factory.h $(includedir)/factory.h
+-		$(INSTALL_DATA) cf_gmp.h $(includedir)/cf_gmp.h
+-		$(INSTALL_DATA) factoryconf.h $(includedir)/factoryconf.h
+-		$(INSTALL_DATA) $(srcdir)/ftmpl_inst.cc $(templatedir)/ftmpl_inst.cc
++		$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
++		$(MKINSTALLDIRS) $(DESTDIR)$(includedir)
++		$(MKINSTALLDIRS) $(DESTDIR)$(templatedir)
++		$(INSTALL_DATA) $(libfactory) $(DESTDIR)$(libdir)/$(libfactory)
++		-$(INSTALL_DATA) libsingcf_g.a $(DESTDIR)$(libdir)/libsingcf_g.a
++		-$(INSTALL_DATA) libsingcf_p.a $(DESTDIR)$(libdir)/libsingcf_p.a
++		$(INSTALL_DATA) factory.h $(DESTDIR)$(includedir)/factory.h
++		$(INSTALL_DATA) cf_gmp.h $(DESTDIR)$(includedir)/cf_gmp.h
++		$(INSTALL_DATA) factoryconf.h $(DESTDIR)$(includedir)/factoryconf.h
++		$(INSTALL_DATA) $(srcdir)/ftmpl_inst.cc $(DESTDIR)$(templatedir)/ftmpl_inst.cc
+ 		for file in $(templatesrc) $(templateincl); do \
+-		  $(INSTALL_DATA) $(srcdir)/templates/$$file $(templatedir)/$$file; \
++		  $(INSTALL_DATA) $(srcdir)/templates/$$file $(DESTDIR)$(templatedir)/$$file; \
+ 		done
+ # we run `ranlib' another time for SUN machines
+-		$(RANLIB) $(libdir)/$(libfactory)
++		$(RANLIB) $(DESTDIR)$(libdir)/$(libfactory)
+ 
+ installmem:	mem
+-		$(MKINSTALLDIRS) $(libdir)
+-		$(INSTALL_DATA) libcfmem.a $(libdir)/libcfmem.a
++		$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
++		$(INSTALL_DATA) libcfmem.a $(DESTDIR)$(libdir)/libcfmem.a
+ # once again: another run for SUN
+-		$(RANLIB) $(libdir)/libcfmem.a
++		$(RANLIB) $(DESTDIR)$(libdir)/libcfmem.a
+ 
+ # to a pity, this cannot be done automatically ...
+ installgftables:
+ 		@echo "Copying GF(q) tables ..."
+ 		@if test -d gftables; then \
+-		  $(MKINSTALLDIRS) $(gftabledir); \
++		  $(MKINSTALLDIRS) $(DESTDIR)$(gftabledir); \
+ 		  for file in gftables/gftable.*.*; do \
+-		    $(INSTALL_DATA) $$file $(gftabledir); \
++		    $(INSTALL_DATA) $$file $(DESTDIR)$(gftabledir); \
+ 		  done \
+ 		elif test -d "$(srcdir)"/gftables; then \
+-		  $(MKINSTALLDIRS) $(gftabledir); \
++		  $(MKINSTALLDIRS) $(DESTDIR)$(gftabledir); \
+ 		  for file in "$(srcdir)"/gftables/gftable.*.*; do \
+-		    $(INSTALL_DATA) $$file $(gftabledir); \
++		    $(INSTALL_DATA) $$file $(DESTDIR)$(gftabledir); \
+ 		  done \
+ 		else \
+ 		  echo "Run 'make gftables' before installing them"; \
+diff -up Singular-3-1-3/IntegerProgramming/Makefile.in.orig Singular-3-1-3/IntegerProgramming/Makefile.in
+--- Singular-3-1-3/IntegerProgramming/Makefile.in.orig	2012-05-05 16:41:35.220304700 -0300
++++ Singular-3-1-3/IntegerProgramming/Makefile.in	2012-05-05 16:41:40.043304855 -0300
+@@ -57,12 +57,12 @@ install-nolns: install
+ install_all: install
+ 
+ install install-libsingular: $(MAIN1) $(MAIN2) $(MAIN3) $(MAIN4) $(LLL)
+-	${MKINSTALLDIRS} ${bindir}
+-	${INSTALL_PROGRAM} $(MAIN1) ${bindir}
+-	${INSTALL_PROGRAM} $(MAIN2) ${bindir}
+-	${INSTALL_PROGRAM} $(MAIN3) ${bindir}
+-	${INSTALL_PROGRAM} $(MAIN4) ${bindir}
+-	${INSTALL_PROGRAM} $(LLL) ${bindir}
++	${MKINSTALLDIRS} $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} $(MAIN1) $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} $(MAIN2) $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} $(MAIN3) $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} $(MAIN4) $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} $(LLL) $(DESTDIR)${bindir}
+ 
+ install-bindist: $(MAIN1) $(MAIN2) $(MAIN3) $(MAIN4)
+ 	${MKINSTALLDIRS} ${install_bindir}
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig	2012-05-05 16:41:35.223304674 -0300
++++ Singular-3-1-3/kernel/Makefile.in	2012-05-05 16:41:40.044304854 -0300
+@@ -275,9 +275,9 @@ p_Procs_%.so: p_Procs_Lib_%.dl_o
+ install-nolns: install
+ 
+ install-libsingular: install
+-	-${MKINSTALLDIRS} ${includedir}
+-	-${MKINSTALLDIRS} ${includedir}/singular
+-	-for file in *.h kInline.cc; do sed -e "s:<kernel/:<singular/:"< $$file | sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" > ${includedir}/singular/$$file; done
++	-${MKINSTALLDIRS} $(DESTDIR)${includedir}
++	-${MKINSTALLDIRS} $(DESTDIR)${includedir}/singular
++	-for file in *.h kInline.cc; do sed -e "s:<kernel/:<singular/:"< $$file | sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" > $(DESTDIR)${includedir}/singular/$$file; done
+ 
+ install: all installbin
+ 
+@@ -293,12 +293,12 @@ endif
+ 
+ 
+ installbin: ${DL_LIBS} ${DL_LIBSG} libkernel.a libkernel_g.a
+-	${MKINSTALLDIRS} ${bindir}
++	${MKINSTALLDIRS} $(DESTDIR)${bindir}
+ 	- ranlib libkernel.a
+ 	- ranlib libkernel_g.a
+ ifeq (,${DL_LIBS})
+ else
+-	-${INSTALL_PROGRAM} ${DL_LIBS} ${bindir}
++	-${INSTALL_PROGRAM} ${DL_LIBS} $(DESTDIR)${bindir}
+ ifeq (,${DL_LIBSG})
+ else
+ 	-for file in ${DL_LIBS} ${DL_LIBSG}; do ${INSTALL_PROGRAM} $$file ../Singular; done
+@@ -307,10 +307,10 @@ endif
+ 
+ 
+ install-bindist: ${DL_LIBS} libkernel.a
+-	${MKINSTALLDIRS} ${bindir}
++	${MKINSTALLDIRS} $(DESTDIR)${bindir}
+ ifeq (,${DL_LIBS})
+ else
+-	-${INSTALL_PROGRAM} ${DL_LIBS} ${bindir}
++	-${INSTALL_PROGRAM} ${DL_LIBS} $(DESTDIR)${bindir}
+ endif
+ 
+ ##
+diff -up Singular-3-1-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+--- Singular-3-1-3/libfac/Makefile.in.orig	2012-05-05 16:41:35.225304662 -0300
++++ Singular-3-1-3/libfac/Makefile.in	2012-05-05 16:41:40.045304851 -0300
+@@ -147,17 +147,17 @@ libsingfac_p.a:	$(PROFOBJ)
+ install-nolns: install
+ 
+ install install-libsingular:	all
+-	${MKINSTALLDIRS} ${includedir}
+-	${MKINSTALLDIRS} ${libdir}
+-	${INSTALL_DATA} ${LIBFACINCLUDE} ${includedir}
+-	${INSTALL_DATA} ${TARGETNAME}.a ${libdir}
+-	-${INSTALL_DATA} libsingfac_g.a ${libdir}
+-	$(RANLIB) ${libdir}/${TARGETNAME}.a
+-	-$(RANLIB) ${libdir}/libsingfac_g.a
++	${MKINSTALLDIRS} $(DESTDIR)${includedir}
++	${MKINSTALLDIRS} $(DESTDIR)${libdir}
++	${INSTALL_DATA} ${LIBFACINCLUDE} $(DESTDIR)${includedir}
++	${INSTALL_DATA} ${TARGETNAME}.a $(DESTDIR)${libdir}
++	-${INSTALL_DATA} libsingfac_g.a $(DESTDIR)${libdir}
++	$(RANLIB) $(DESTDIR)${libdir}/${TARGETNAME}.a
++	-$(RANLIB) $(DESTDIR)${libdir}/libsingfac_g.a
+ 
+ install_all: install libsingfac_p.a
+-	-${INSTALL_DATA} libsingfac_p.a ${libdir}
+-	-$(RANLIB) ${libdir}/libsingfac_p.a
++	-${INSTALL_DATA} libsingfac_p.a $(DESTDIR)${libdir}
++	-$(RANLIB) $(DESTDIR)${libdir}/libsingfac_p.a
+ 
+ uninstall: 
+ 	$(RM) ${includedir}/${LIBFACINCLUDE}
+diff -up Singular-3-1-3/omalloc/Makefile.in.orig Singular-3-1-3/omalloc/Makefile.in
+--- Singular-3-1-3/omalloc/Makefile.in.orig	2012-05-05 16:41:35.227304656 -0300
++++ Singular-3-1-3/omalloc/Makefile.in	2012-05-05 16:41:40.045304851 -0300
+@@ -181,35 +181,35 @@ configure: configure.in
+ install-nolns: install
+ 
+ install-libsingular:
+-	$(MKINSTALLDIRS) $(includedir)/singular
+-	$(INSTALL) omalloc.h $(includedir)/singular
++	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/singular
++	$(INSTALL) omalloc.h $(DESTDIR)$(includedir)/singular
+ 
+ install install-libsingular: all
+-	$(MKINSTALLDIRS) $(libdir)
+-	$(MKINSTALLDIRS) $(includedir)
+-	$(INSTALL_DATA) libomalloc.a $(libdir)
+-	$(RANLIB) $(libdir)/libomalloc.a
+-	$(INSTALL_DATA) libomalloc_ndebug.a $(libdir)
+-	$(RANLIB) $(libdir)/libomalloc_ndebug.a
+-	$(INSTALL_DATA) omalloc.o $(libdir)
+-	$(INSTALL_DATA) omalloc_debug.o $(libdir)
+-	$(INSTALL_DATA) omalloc.h $(includedir)
+-	$(INSTALL_DATA) omlimits.h $(includedir)
+-	$(INSTALL_DATA) mylimits.h $(includedir)
++	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
++	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) libomalloc.a $(DESTDIR)$(libdir)
++	$(RANLIB) $(DESTDIR)$(libdir)/libomalloc.a
++	$(INSTALL_DATA) libomalloc_ndebug.a $(DESTDIR)$(libdir)
++	$(RANLIB) $(DESTDIR)$(libdir)/libomalloc_ndebug.a
++	$(INSTALL_DATA) omalloc.o $(DESTDIR)$(libdir)
++	$(INSTALL_DATA) omalloc_debug.o $(DESTDIR)$(libdir)
++	$(INSTALL_DATA) omalloc.h $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) omlimits.h $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) mylimits.h $(DESTDIR)$(includedir)
+ 
+ install_all: install libomalloc_p.a
+-	$(INSTALL_DATA) libomalloc_p.a $(libdir)
+-	$(RANLIB) $(libdir)/libomalloc_p.a
++	$(INSTALL_DATA) libomalloc_p.a $(DESTDIR)$(libdir)
++	$(RANLIB) $(DESTDIR)$(libdir)/libomalloc_p.a
+ 
+ install_min: libomalloc_ndebug.a omalloc.o
+-	$(MKINSTALLDIRS) $(libdir)
+-	$(MKINSTALLDIRS) $(includedir)
+-	$(INSTALL_DATA) libomalloc_ndebug.a $(libdir)
+-	$(RANLIB) $(libdir)/libomalloc_ndebug.a
+-	$(INSTALL_DATA) omalloc.o $(libdir)
+-	$(INSTALL_DATA) omalloc.h $(includedir)
+-	$(INSTALL_DATA) omlimits.h $(includedir)
+-	$(INSTALL_DATA) mylimits.h $(includedir)
++	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
++	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) libomalloc_ndebug.a $(DESTDIR)$(libdir)
++	$(RANLIB) $(DESTDIR)$(libdir)/libomalloc_ndebug.a
++	$(INSTALL_DATA) omalloc.o $(DESTDIR)$(libdir)
++	$(INSTALL_DATA) omalloc.h $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) omlimits.h $(DESTDIR)$(includedir)
++	$(INSTALL_DATA) mylimits.h $(DESTDIR)$(includedir)
+ 
+ uninstall:
+ 	rm -f $(includedir)/omalloc.h
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 16:41:35.230304661 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 16:42:11.280306046 -0300
+@@ -560,51 +560,51 @@ install_all: install
+ install-nolns: all installbin-nolns installslib-nolns
+ 
+ installbin: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
+-	${MKINSTALLDIRS} ${bindir}
+-	${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
++	${MKINSTALLDIRS} $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
+ 	-for file in *.so; do \
+-	  ${INSTALL_PROGRAM} $$file ${bindir}; \
++	  ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
+ 	done
+-	${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
+-	${INSTALL_PROGRAM} ESingular TSingular ${bindir}
+-	${INSTALL_PROGRAM} surfex ${bindir}
+-	chmod a+x ${SINGULAR}
+-	rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
+-	cd ${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};
++	${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} ESingular TSingular $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} surfex $(DESTDIR)${bindir}
++	chmod a+x $(DESTDIR)${SINGULAR}
++	rm -f $(DESTDIR)${bindir}/${SING_EXEC}${EXEC_EXT}
++	cd $(DESTDIR)${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};
+ 
+ installbin-nolns: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
+-	${MKINSTALLDIRS} ${bindir}
+-	${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
++	${MKINSTALLDIRS} $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
+ 	-for file in *.so; do \
+-	  ${INSTALL_PROGRAM} $$file ${bindir}; \
++	  ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
+ 	done
+-	${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
+-	${INSTALL_PROGRAM} ESingular TSingular ${DL_LIBS} ${bindir}
+-	chmod a+x ${SINGULAR}
+-	rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
+-	${INSTALL_PROGRAM} ${SINGULAR} ${bindir}/Singular${EXEC_EXT};
++	${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} $(DESTDIR)${bindir}
++	${INSTALL_PROGRAM} ESingular TSingular ${DL_LIBS} $(DESTDIR)${bindir}
++	chmod a+x $(DESTDIR)${SINGULAR}
++	rm -f $(DESTDIR)${bindir}/${SING_EXEC}${EXEC_EXT}
++	${INSTALL_PROGRAM} ${SINGULAR} $(DESTDIR)${bindir}/Singular${EXEC_EXT};
+ 
+ installslib: LIB
+-	test -r ${slibdir} || ${LN_S} `pwd`/LIB ${slibdir}
++	test -r $(DESTDIR)${slibdir} || ${LN_S} `pwd`/LIB $(DESTDIR)${slibdir}
+ 
+ installslib-nolns: LIB
+-	${MKINSTALLDIRS} ${slibdir}
++	${MKINSTALLDIRS} $(DESTDIR)${slibdir}
+ 	for file in `pwd`/LIB/*.lib; do \
+-	  ${INSTALL_DATA}  $$file ${slibdir}; \
++	  ${INSTALL_DATA}  $$file $(DESTDIR)${slibdir}; \
+ 	done
+-	${MKINSTALLDIRS} ${slibdir}/gftables
++	${MKINSTALLDIRS} $(DESTDIR)${slibdir}/gftables
+ 	for file in `pwd`/LIB/gftables/*; do \
+-	  ${INSTALL_DATA}  $$file ${slibdir}/gftables/; \
++	  ${INSTALL_DATA}  $$file $(DESTDIR)${slibdir}/gftables/; \
+ 	done
+ 
+ install-libsingular: libsingular
+-	${MKINSTALLDIRS} ${includedir}/singular
++	${MKINSTALLDIRS} $(DESTDIR)${includedir}/singular
+ 	for file in *.$(SO_SUFFIX); do \
+-	  ${INSTALL_PROGRAM}  $$file ${libdir}; \
++	  ${INSTALL_PROGRAM}  $$file $(DESTDIR)${libdir}; \
+ 	done
+-	${INSTALL_PROGRAM} libsingular.h ${includedir}
++	${INSTALL_PROGRAM} libsingular.h $(DESTDIR)${includedir}
+ 	for file in subexpr.h tok.h grammar.h ipid.h lists.h ipshell.h attrib.h; do \
+-	sed -e "s:<kernel/:<singular/:" < $$file |sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" >${includedir}/singular/$$file ;\
++	sed -e "s:<kernel/:<singular/:" < $$file |sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" >$(DESTDIR)${includedir}/singular/$$file ;\
+ 	done
+ 
+ uninstall: uninstallbin
+diff -up Singular-3-1-3/doc/Makefile.in.orig Singular-3-1-3/doc/Makefile.in
+--- Singular-3-1-3/doc/Makefile.in.orig	2012-05-05 17:30:31.843417102 -0300
++++ Singular-3-1-3/doc/Makefile.in	2012-05-05 17:30:41.009417470 -0300
+@@ -68,7 +68,7 @@ DOC_SUBDIR      = ./d2t_singular
+ EX_SUBDIR       = ./examples
+ CHKSUM_DB       = ${DOC_SUBDIR}/chksum
+ DOC2TEX         = ${PERL} ./doc2tex.pl -docdir ${DOC_SUBDIR} \
+-                  -Singular ${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
++                  -Singular $(DESTDIR)${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
+ 		  -exdir ${EX_SUBDIR} @DOC2TEX_EXAMPLE_EXCLUSIONS@
+ PL2DOC		= ${PERL} ./pl2doc.pl -db ${CHKSUM_DB}
+ 
diff --git a/Singular-doc.patch b/Singular-doc.patch
new file mode 100644
index 0000000..5db6d78
--- /dev/null
+++ b/Singular-doc.patch
@@ -0,0 +1,134 @@
+diff -up Singular-3-1-3/doc/Makefile.in.orig Singular-3-1-3/doc/Makefile.in
+--- Singular-3-1-3/doc/Makefile.in.orig	2012-05-05 19:44:47.214725583 -0300
++++ Singular-3-1-3/doc/Makefile.in	2012-05-05 19:44:55.751725909 -0300
+@@ -62,13 +62,13 @@ SINGULAR_LIB_DIR= ../Singular/LIB
+ ifeq ($(SINGUNAME),"ix86-Win")
+ LIBPARSE        = ${bindir}/libparse.exe
+ else
+-LIBPARSE        = ${bindir}/libparse
++LIBPARSE        = $(DESTDIR)${bindir}/libparse
+ endif
+ DOC_SUBDIR      = ./d2t_singular
+ EX_SUBDIR       = ./examples
+ CHKSUM_DB       = ${DOC_SUBDIR}/chksum
+ DOC2TEX         = ${PERL} ./doc2tex.pl -docdir ${DOC_SUBDIR} \
+-                  -Singular $(DESTDIR)${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
++                  -Singular /bin/true -verbose ${VERBOSE} -make ${MAKE} \
+ 		  -exdir ${EX_SUBDIR} @DOC2TEX_EXAMPLE_EXCLUSIONS@
+ PL2DOC		= ${PERL} ./pl2doc.pl -db ${CHKSUM_DB}
+ 
+@@ -320,7 +320,6 @@ install-sharedist: singular.hlp html sin
+ 	${MKINSTALLDIRS} ${install_htmldir}
+ 	cp ${HTML_SUBDIR}/*.htm ${install_htmldir}
+ 	cp ${HTML_SUBDIR}/*.gif ${install_htmldir}
+-	-cp ${HTML_SUBDIR}/*.png ${install_htmldir}
+ 	cp ${HTML_SUBDIR}/*.jpg ${install_htmldir}
+ 	chmod -R +rX ${install_htmldir}
+ 	${MKINSTALLDIRS} ${install_docdir}
+diff -up Singular-3-1-3/emacs/Makefile.in.orig Singular-3-1-3/emacs/Makefile.in
+--- Singular-3-1-3/emacs/Makefile.in.orig	2012-05-05 19:44:52.566725787 -0300
++++ Singular-3-1-3/emacs/Makefile.in	2012-05-05 19:45:07.460726353 -0300
+@@ -6,11 +6,12 @@
+ SHELL=/bin/sh
+ 
+ prefix		= @prefix@
+-docdir		= ${prefix}/doc
+-examplesdir	= ${prefix}/examples
++libdir		= @libdir@
++datadir		= @datadir@
+ SINGULAR	= @SINGULAR@
+-singulardir	= ${prefix}/Singular 
+-emacsdir	= ${install_prefix}/emacs
++singulardir	= ${libdir}/Singular
++examplesdir	= ${singulardir}/examples
++emacsdir	= ${datadir}/emacs/site-lisp/singular
+ 
+ 
+ PERL		= @PERL@
+@@ -18,42 +19,42 @@ INSTALL		= ../install-sh -c
+ INSTALL_DATA	= ${INSTALL} -m 644
+ MKINSTALLDIRS   = ../mkinstalldirs
+ 
+-SINGULAR_HLP	= ${docdir}/singular.hlp
++SINGULAR_HLP	= ${singulardir}/info/singular.hlp
+ 
+ all install: cmd-cmpl.el hlp-cmpl.el lib-cmpl.el ex-cmpl.el
+ 
+ install_all: install
+ 
+-cmd-cmpl.el: ${SINGULAR} cmpl.pl
+-	${PERL} cmpl.pl -Singular ${SINGULAR} -cmpl cmd > cmd-cmpl.el
++cmd-cmpl.el: cmpl.pl
++	${PERL} cmpl.pl -Singular $(DESTDIR)${SINGULAR} -cmpl cmd > cmd-cmpl.el
+ 
+-hlp-cmpl.el: ${SINGULAR_HLP} cmpl.pl
+-	${PERL} cmpl.pl -hlp ${SINGULAR_HLP} -cmpl hlp > hlp-cmpl.el
++hlp-cmpl.el: cmpl.pl
++	${PERL} cmpl.pl -hlp $(DESTDIR)${SINGULAR_HLP} -cmpl hlp > hlp-cmpl.el
+ 
+-ex-cmpl.el: cmpl.pl ${examplesdir}
+-		${PERL} cmpl.pl -cmpl ex -ex_dir ${examplesdir} > ex-cmpl.el
++ex-cmpl.el: cmpl.pl
++	${PERL} cmpl.pl -cmpl ex -ex_dir $(DESTDIR)${examplesdir} > ex-cmpl.el
+ 
+-lib-cmpl-old.el: ${prefix}/Singular/Makefile cmpl.pl
+-	${MAKE} --no-print-directory -s -f ${prefix}/Singular/Makefile echoLIBS > lib-temp
++lib-cmpl-old.el: cmpl.pl
++	${MAKE} --no-print-directory -s -f ../Singular/Makefile echoLIBS > lib-temp
+ 	cat lib-temp | ${PERL} cmpl.pl -cmpl lib > lib-cmpl-old.el
+ 	rm lib-temp
+ 
+-lib-cmpl.el: ${prefix}/Singular/Makefile lib.pl
+-	(cd ${prefix}/Singular;${MAKE} --no-print-directory -s -f Makefile echoLIBS) > lib-temp
+-	${PERL} lib.pl -s ${singulardir} `cat lib-temp` > lib-cmpl.el
++lib-cmpl.el: lib.pl
++	(cd ../Singular;${MAKE} --no-print-directory -s -f Makefile echoLIBS) > lib-temp
++	${PERL} lib.pl -s $(DESTDIR)${singulardir} `cat lib-temp` > lib-cmpl.el
+ 
+ clean mostlyclean distclean:
+ 	rm -f cmd-cmpl.el hlp-cmpl.el lib-cmpl.el ex-cmpl.el
+ 
+ install-sharedist: all
+-	${MKINSTALLDIRS} ${emacsdir}
+-	${INSTALL_DATA} cmd-cmpl.el ${emacsdir}
+-	${INSTALL_DATA} lib-cmpl.el ${emacsdir}
+-	${INSTALL_DATA} hlp-cmpl.el ${emacsdir}
+-	${INSTALL_DATA} ex-cmpl.el ${emacsdir}
+-	${INSTALL_DATA} singular.el ${emacsdir}
+-	${INSTALL_DATA} .emacs-singular ${emacsdir}
+-	${INSTALL_DATA} .emacs-general ${emacsdir}
++	${MKINSTALLDIRS} $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} cmd-cmpl.el $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} lib-cmpl.el $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} hlp-cmpl.el $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} ex-cmpl.el $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} singular.el $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} .emacs-singular $(DESTDIR)${emacsdir}
++	${INSTALL_DATA} .emacs-general $(DESTDIR)${emacsdir}
+ 
+ depend:
+-	@echo "No make depend available!"
+\ No newline at end of file
++	@echo "No make depend available!"
+--- Singular-3-1-3/emacs/.emacs-singular.orig	2012-05-05 20:00:42.103762148 -0300
++++ Singular-3-1-3/emacs/.emacs-singular	2012-05-05 20:01:17.852763517 -0300
+@@ -57,13 +57,12 @@
+ ;;; ;; add Singular toolbar for XEmacs
+ ;;; <... insert the code below if you are running XEmacs ...>
+ ;;;
+-;;; ;; add Singular Emacs home directory to `load-path'
+-;;; (setq load-path (cons "<your-singular-emacs-home-directory>" load-path))
+-;;; (autoload 'singular "singular"
+-;;;   "Start Singular using default values." t)
+-;;; (autoload 'singular-other "singular"
+-;;;   "Ask for arguments and start Singular." t)
+-;;;
++;; add Singular Emacs home directory to `load-path'
++(setq load-path (cons "<your-singular-emacs-home-directory>" load-path))
++(autoload 'singular "singular"
++  "Start Singular using default values." t)
++(autoload 'singular-other "singular"
++  "Ask for arguments and start Singular." t)
+ 
+ ;; extra key bindings
+ (add-hook 'singular-interactive-mode-hook
diff --git a/Singular-headers.patch b/Singular-headers.patch
new file mode 100644
index 0000000..5af8ed8
--- /dev/null
+++ b/Singular-headers.patch
@@ -0,0 +1,37 @@
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig	2012-05-05 15:03:36.064079528 -0300
++++ Singular-3-1-3/kernel/Makefile.in	2012-05-05 15:03:55.870080289 -0300
+@@ -48,7 +48,7 @@ PIPE		= @PIPE@
+ CFLAGS		= @CFLAGS@ ${PIPE} 
+ CXXFLAGS	= @CXXFLAGS@ ${PIPE} 
+ CXXTEMPLFLAGS	= @CXXTEMPLFLAGS@
+-CPPFLAGS	= -I${srcdir} -I.. -I at prefix@  @CPPFLAGS@ 
++CPPFLAGS	= -I${srcdir} -I.. -I../omalloc -I${srcdir}/../factory -I at prefix@  @CPPFLAGS@ 
+ DEFS		= -DNDEBUG -DOM_NDEBUG -D at SING_UNAME@ @DEFS@
+ LDFLAGS		= @LDFLAGS@
+ LD_DYN_FLAGS	= @LD_DYN_FLAGS@
+diff -up Singular-3-1-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+diff -up Singular-3-1-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+--- Singular-3-1-3/libfac/Makefile.in.orig	2012-05-05 15:16:31.642109243 -0300
++++ Singular-3-1-3/libfac/Makefile.in	2012-05-05 15:17:01.494110342 -0300
+@@ -37,7 +37,7 @@ MKINSTALLDIRS	= ./mkinstalldirs
+ ##
+ CXXFLAGS	= @CXXFLAGS@
+ CXXTEMPLFLAGS	= @CXXTEMPLFLAGS@
+-CPPFLAGS	= -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I.. -I${prefix} @CPPFLAGS@ 
++CPPFLAGS	= -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I${srcdir}/.. -I${srcdir}/../factory -I${prefix} @CPPFLAGS@ 
+ DEFS		= @DEFS@ 
+ LDFLAGS		= @LDFLAGS@
+ LIBS		= -lfac -lcf -lcfmem -lgmp @LIBS@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 15:25:21.273129522 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 15:26:08.502131306 -0300
+@@ -76,7 +76,7 @@ CFLAGS		= @CFLAGS@ ${PIPE}
+ CXXFLAGS	= @CXXFLAGS@ -I.. -I at prefix@ ${PIPE}
+ CXXTEMPLFLAGS	= @CXXTEMPLFLAGS@ -I.. -I at prefix@
+ ifneq ($(SINGUNAME),ix86-Win)
+-CPPFLAGS	= -I${srcdir} -I.. -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
++CPPFLAGS	= -I${srcdir} -I${srcdir}/.. -I${srcdir}/../omalloc -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
+ else
+ ## Dirs after @CPPFLAGS@ are for PySingular
+ CPPFLAGS	= -I${srcdir} -I.. -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
diff --git a/Singular-link.patch b/Singular-link.patch
new file mode 100644
index 0000000..bdca30c
--- /dev/null
+++ b/Singular-link.patch
@@ -0,0 +1,43 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 16:29:28.539276776 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 16:30:06.024278325 -0300
+@@ -380,13 +380,13 @@ Singular${S_EXT}: mod2.h Makefile versio
+ 	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} \
+ 	  -o Singular${S_EXT} \
+ 	  tesths.cc iparith.o mpsr_Tok.o claptmpl.o\
+-	  ${OBJS} ${LDFLAGS} ${LIBS} ../kernel/mmalloc.o 
++	  ${OBJS} ${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc -lkernel ${LIBS} ../kernel/mmalloc.o 
+ 
+ libsingular: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc  ${OBJS} \
+          iparith.o libparse.cc claptmpl.o mpsr_Tok.o $(DL_LIBS) 
+ 	$(LIBSINGULAR_LD) ${SLDFLAGS} ${LIBSINGULAR_FLAGS} -o libsingular.${SO_SUFFIX} \
+ 	iparith.o mpsr_Tok.o claptmpl.o \
+-	${OBJS} -lkernel -L../kernel -L../factory -L../libfac -L${libdir} ${LIBSINGULAR_LIBS}
++	${OBJS}  -L../kernel -L../factory -L../libfac -L../omalloc -lkernel -L${libdir} ${LIBSINGULAR_LIBS}
+ 
+ libsingular.a: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc  ${OBJS} \
+          iparith.o libparse.cc claptmpl.o mpsr_Tok.o
+@@ -441,7 +441,7 @@ version.h: ${SOURCES} ${HEADERS} Makefil
+ 	echo "#define CXX \"" ${CXX} ${CXXFLAGS} ${DEFS} "\"" >>version.h
+ 
+ libparse: libparse_main.o utils.o
+-	${CXX}  ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -lomalloc
++	${CXX}  ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -L../omalloc -lomalloc
+ 
+ libparse_main.o: libparse.cc
+ 	${CXX} ${CPPFLAGS} -c -o libparse_main.o libparse.cc  -DSTANDALONE_PARSER
+@@ -462,12 +462,12 @@ libparse.cc: libparse.l
+ ESingular: mod2.h feOpt.cc version.h emacs.cc \
+            feOptES.inc
+ 	${CXX} -O2 ${CPPFLAGS} ${DEFS} -DESINGULAR -DPROTO -o ESingular emacs.cc ../kernel/fegetopt.o \
+-	${LDFLAGS} ${LIBS} ../kernel/mmalloc.o
++	${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc ${LIBS} ../kernel/mmalloc.o
+ 
+ TSingular: mod2.h feOpt.cc version.h emacs.cc \
+            feOptTS.inc
+ 	${CXX} -O2 ${CPPFLAGS} ${DEFS} -DTSINGULAR -DPROTO -o TSingular emacs.cc ../kernel/fegetopt.o \
+-	${LDFLAGS} ${LIBS} ../kernel/mmalloc.o
++	${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc ${LIBS} ../kernel/mmalloc.o
+ 
+ feOpt.o: feOpt.inc feOptES.inc feOptTS.inc
+ extra.o: feOpt.inc
diff --git a/Singular-make-parallel.patch b/Singular-make-parallel.patch
new file mode 100644
index 0000000..0acc1a6
--- /dev/null
+++ b/Singular-make-parallel.patch
@@ -0,0 +1,45 @@
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig	2012-05-05 14:14:28.055966942 -0300
++++ Singular-3-1-3/kernel/Makefile.in	2012-05-05 14:14:40.293967976 -0300
+@@ -243,7 +243,7 @@ p_Procs_Lib.o: p_Procs_Lib.inc
+ 
+ # Hmm compiling with -fomit-frame-pointer resulted in access violation
+ # under cygwin
+-prCopy.o: prCopy.inc
++prCopy.o prCopy.og prCopy.op: prCopy.inc
+ 
+ prCopy.inc : prCopyMacros.h prCopyTemplate.cc prCopy.pl
+ 	$(PERL) prCopy.pl > prCopy.xx && mv prCopy.xx prCopy.inc
+diff -up Singular-3-1-3/Makefile.in.orig Singular-3-1-3/Makefile.in
+--- Singular-3-1-3/Makefile.in.orig	2012-05-05 14:13:29.999964494 -0300
++++ Singular-3-1-3/Makefile.in	2012-05-05 14:13:41.293963889 -0300
+@@ -146,14 +146,14 @@ local-maintainer-clean: local-distclean
+ 	rm -rf configure
+ 
+ clean mostlyclean: local-clean
+-	$(recurse)
++	+$(recurse)
+ 
+ distclean: local-distclean
+-	$(recurse)
++	+$(recurse)
+ 	rm -rf build
+ 
+ maintainer-clean: uninstall local-maintainer-clean
+-	$(recurse)
++	+$(recurse)
+ 
+ ##############################################################
+ # some extra targets for the specific packages
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 14:13:57.799964872 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 14:14:14.685966006 -0300
+@@ -413,7 +413,7 @@ iparith.o mpsr_Tok.o : iparith.inc mpsr_
+ 
+ cntrlc.o cntrlc.og : feOptES.inc feOptTS.inc feOpt.inc version.h
+ 
+-misc_ip.o emacs.o tesths.o: version.h
++misc_ip.o emacs.o tesths.o: feOpt.inc version.h
+ 
+ claptmpl.o: claptmpl.cc mod2.h
+ 	${CXX} ${CXXFLAGS}  ${CPPFLAGS} ${DEFS} -c $<
diff --git a/Singular-python.patch b/Singular-python.patch
new file mode 100644
index 0000000..8e6cd87
--- /dev/null
+++ b/Singular-python.patch
@@ -0,0 +1,30 @@
+diff -up Singular-3-1-3/Singular/configure.orig Singular-3-1-3/Singular/configure
+--- Singular-3-1-3/Singular/configure.orig	2012-05-05 14:09:57.443956412 -0300
++++ Singular-3-1-3/Singular/configure	2012-05-05 14:11:06.261959072 -0300
+@@ -1800,7 +1800,7 @@ python_exe_name="no"
+ PYTHON_PLUGIN="module"
+ PYTHON_LINKAGE="static"
+ 
+-if test "${with_python+set}" == set; then
++if test "${with_python+set}" = set; then
+   case "${with_python}" in
+     yes|static*|dynamic*|shared*|module*|embed*)
+       python_exe_name="python"
+@@ -1971,7 +1971,7 @@ echo "configure:1968: checking for Pytho
+ 		py_version=`$PYTHON -c "from distutils.sysconfig import *; \
+                         from string import join; \
+                         print join(get_config_vars('VERSION'))"`
+-		if test "$py_version" == "None"; then
++		if test "$py_version" = "None"; then
+ 			if test -n "$PYTHON_VERSION"; then
+ 				py_version=$PYTHON_VERSION
+ 			else
+@@ -2134,7 +2134,7 @@ rm -f conftest*
+ 
+         echo "$ac_t""$pythonstaticexists" 1>&6
+ 
+-        if test "$pythonstaticexists" == yes ; then
++        if test "$pythonstaticexists" = yes ; then
+           cat >> confdefs.h <<\EOF
+ #define HAVE_STATIC_PYTHON 1
+ EOF
diff --git a/Singular-shared.patch b/Singular-shared.patch
new file mode 100644
index 0000000..fa82e92
--- /dev/null
+++ b/Singular-shared.patch
@@ -0,0 +1,12 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig	2012-05-05 14:17:52.039974588 -0300
++++ Singular-3-1-3/Singular/Makefile.in	2012-05-05 14:18:01.501974441 -0300
+@@ -136,7 +136,7 @@ LIBSINGULAR_LIBS =-lsingfac -lsingcf -ln
+ 
+ SO_SUFFIX = so
+ 
+-#LIBSINGULAR_FLAGS = -export-dynamic 
++LIBSINGULAR_FLAGS = -shared
+ LIBSINGULAR_LD = $(CXX)
+ 
+ # correct suffix for dynamic linking
diff --git a/Singular-undefined.patch b/Singular-undefined.patch
new file mode 100644
index 0000000..2c9d63d
--- /dev/null
+++ b/Singular-undefined.patch
@@ -0,0 +1,47 @@
+diff -up Singular-3-1-3/Singular/misc_ip.cc.orig Singular-3-1-3/Singular/misc_ip.cc
+--- Singular-3-1-3/Singular/misc_ip.cc.orig	2012-05-09 00:58:45.370543834 -0300
++++ Singular-3-1-3/Singular/misc_ip.cc	2012-05-09 01:00:18.559547404 -0300
+@@ -1147,7 +1147,6 @@ void siInit(char *name)
+   errorreported = 0;
+ }
+ 
+-#ifdef LIBSINGULAR
+ #ifdef HAVE_FACTORY
+ // the init routines of factory need mmInit
+ int mmInit( void )
+@@ -1155,4 +1154,3 @@ int mmInit( void )
+   return 1;
+ }
+ #endif
+-#endif
+diff -up Singular-3-1-3/Singular/tesths.cc.orig Singular-3-1-3/Singular/tesths.cc
+--- Singular-3-1-3/Singular/tesths.cc.orig	2012-05-09 00:58:34.713543427 -0300
++++ Singular-3-1-3/Singular/tesths.cc	2012-05-09 00:59:39.263545898 -0300
+@@ -48,27 +48,6 @@
+ extern int siInit(char *);
+ 
+ #if ! defined(LIBSINGULAR)
+-int mmInit2( void )
+-{
+-#if defined(OMALLOC_USES_MALLOC) || defined(X_OMALLOC)
+-    /* in mmstd.c, for some architectures freeSize() unconditionally uses the *system* free() */
+-    /* sage ticket 5344: http://trac.sagemath.org/sage_trac/ticket/5344 */
+-    /* do not rely on the default in Singular as libsingular may be different */
+-    mp_set_memory_functions(omMallocFunc,omReallocSizeFunc,omFreeSizeFunc);
+-#else
+-    mp_set_memory_functions(malloc,reallocSize,freeSize);
+-#endif
+-  return 1;
+-}
+-int mmInit( void )
+-{
+-#ifndef SI_THREADS
+-  return mmInit2();
+-#else
+-  return 1;
+-#endif
+-}
+-
+ /*0 implementation*/
+ int main(          /* main entry to Singular */
+     int argc,      /* number of parameter */
diff --git a/Singular.spec b/Singular.spec
new file mode 100644
index 0000000..94e2cc2
--- /dev/null
+++ b/Singular.spec
@@ -0,0 +1,421 @@
+%global singulardir	%{_libdir}/Singular
+
+Name:		Singular
+Version:	3.1.3
+Release:	6%{?dist}
+Summary:	Computer Algebra System for polynomial computations
+Group:		Applications/Engineering
+License:	BSD and LGPLv2+ and GPLv2+
+Source0:	http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/3-1-3/Singular-3-1-3-3.tar.gz
+URL:		http://www.singular.uni-kl.de/
+BuildRequires:	emacs
+BuildRequires:	flex
+BuildRequires:	gmp-devel
+BuildRequires:	ncurses-devel
+BuildRequires:	ntl-devel
+BuildRequires:	readline-devel
+# Need uudecode for documentation images in tarball
+BuildRequires:	sharutils
+BuildRequires:	texinfo
+BuildRequires:	tex(latex)
+# Requires:	surf
+
+# Adapted from sagemath Singular.configure.patch
+Patch0:		Singular-python.patch
+# Adapted from sagemath make_parallel.patch
+Patch1:		Singular-make-parallel.patch
+# Adapted from sagemath Singular.Makefile.in.shared.patch
+Patch2:		Singular-shared.patch
+# Use destdir in install targets
+Patch3:		Singular-destdir.patch
+# Find headers in source tree
+Patch4:		Singular-headers.patch
+# Find and link to generated libraries
+Patch5:		Singular-link.patch
+# Do not attempt to load non existing modules, do not even run
+# the binary in DESTDIR when building the documentation
+Patch6:		Singular-doc.patch
+# Correct koji error:
+# ** ERROR: No build ID note found in /builddir/build/BUILDROOT/Singular-3.1.3-1.fc16.x86_64/usr/lib64/Singular/dbmsr.so
+Patch7:		Singular-builddid.patch
+# Correct undefined symbol in libsingular
+# This patch removes a hack to avoid duplicated symbols in tesths.cc
+# when calling mp_set_memory_functions, what is a really a bad idea on
+# a shared library.
+Patch8:		Singular-undefined.patch
+
+%description
+Singular is a computer algebra system for polynomial computations, with
+special emphasis on commutative and non-commutative algebra, algebraic
+geometry, and singularity theory. It is free and open-source under the
+GNU General Public Licence.
+
+%package	devel
+Summary:	Singular development files
+Group:		Development/Libraries
+Requires:	factory-devel
+Requires:	libfac-devel
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	devel
+This package contains the Singular development files.
+
+%description	devel
+This package contains the Singular development files.
+
+%package	-n factory-devel
+Summary:	C++ class library for multivariate polynomial data
+Group:		Development/Libraries
+Requires:	gmp-devel
+Obsoletes:	factory-static < %{version}-%{release}
+Provides:	factory-static = %{version}-%{release}
+
+%description	-n factory-devel 
+Factory is a C++ class library that implements a recursive representation
+of multivariate polynomial data.
+
+%package	-n libfac-devel
+Summary:	An extension to Singular-factory
+Group:		Development/Libraries
+Obsoletes:	libfac-static < %{version}-%{release}
+Provides:	libfac-static = %{version}-%{release}
+
+%description	-n libfac-devel
+Singular-libfac is an extension to Singular-factory which implements
+factorization of polynomials over finite fields and algorithms for
+manipulation of polynomial ideals via the characteristic set methods
+(e.g., calculating the characteristic set and the irreducible
+characteristic series).
+
+%package	examples
+Summary:	Singular example files
+Group:		Applications/Engineering
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	examples
+This package contains the Singular example files.
+
+%description	examples
+This package contains the Singular example files.
+
+%package	doc
+Summary:	Singular documentation files
+Group:		Applications/Engineering
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	doc
+This package contains the Singular documentation files.
+
+%description	doc
+This package contains the Singular documentation files.
+
+%package	surfex
+Summary:	Singular java interface
+Group:		Applications/Engineering
+Requires:	java
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	surfex
+This package contains the Singular java interface.
+
+%description	surfex
+This package contains the Singular java interface.
+
+%package	emacs
+Summary:	Emacs mode for Singular
+Group:		Applications/Engineering
+Requires:	emacs-common
+Requires:	%{name}%{?_isa} = %{version}-%{release}
+
+%description	emacs
+Emacs mode for Singular.
+
+%prep
+%setup -q -n %{name}-3-1-3
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+
+sed -i -e "s|gftabledir=.*|gftabledir='%{singulardir}/LIB/gftables'|"	\
+    -e "s|explicit_gftabledir=.*|explicit_gftabledir='%{singulardir}/LIB/gftables'|" \
+    factory/configure.in
+
+# Force use of system ntl
+rm -fr ntl
+
+%build
+export CFLAGS="%{optflags} -fPIC"
+export CXXFLAGS=$CFLAGS
+
+# build components in specific order to not need to build & install
+# in a single make command
+%configure \
+	--bindir=%{singulardir} \
+	--with-apint=gmp \
+	--with-gmp=%{_prefix} \
+	--with-ntl=%{_prefix} \
+	--with-NTL \
+	--without-MP \
+	--without-lex \
+	--without-bison \
+	--without-Boost \
+	--enable-gmp=%{_prefix} \
+	--enable-Singular \
+	--enable-factory \
+	--enable-libfac \
+	--enable-IntegerProgramming \
+	--disable-doc \
+	--with-malloc=system
+make %{?_smp_mflags} Singular
+# factory needs omalloc built
+make %{?_smp_mflags} -C omalloc
+
+pushd factory
+%configure \
+	--bindir=%{singulardir} \
+	--includedir=%{_includedir}/factory \
+	--with-apint=gmp \
+	--with-gmp=%{_prefix} \
+	--with-ntl=%{_prefix} \
+	--with-NTL \
+	--with-Singular \
+	--enable-gmp=%{_prefix}
+    make %{?_smp_mflags}
+popd
+
+# kernel needs factory built
+make %{?_smp_mflags} -C kernel
+
+# libfac needs factory built
+pushd libfac
+%configure \
+	--bindir=%{singulardir} \
+	--with-apint=gmp \
+	--with-gmp=%{_prefix} \
+	--with-ntl=%{_prefix} \
+	--with-NTL \
+	--enable-factory \
+	--enable-libfac \
+	--enable-omalloc \
+	--enable-gmp=%{_prefix}
+    make %{?_smp_mflags}
+    # not built by default
+    make libfac.a
+popd
+
+# target required to rebuild documentation
+make %{?_smp_mflags} -C Singular libparse
+
+%install
+make \
+	DESTDIR=$RPM_BUILD_ROOT \
+	install_prefix=$RPM_BUILD_ROOT%{singulardir} \
+	install \
+	install-libsingular \
+	install-sharedist
+
+# does not need to be in top directory
+mv $RPM_BUILD_ROOT%{_includedir}/{my,om}limits.h \
+    $RPM_BUILD_ROOT%{_includedir}/singular
+
+# symlink to builddir
+rm $RPM_BUILD_ROOT%{_prefix}/LIB
+
+# also installed in libdir
+rm -f $RPM_BUILD_ROOT%{_bindir}/*.so
+rm -f $RPM_BUILD_ROOT%{singulardir}/libsingular.so
+
+# already linked to libsingular.so; do not distribute static libraries
+# or just compiled objects.
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/*.o
+
+# avoid poluting libdir with dynamic modules
+pushd $RPM_BUILD_ROOT%{_libdir}
+    mkdir -p Singular
+    mv dbmsr.so p_Procs*.so Singular
+popd
+
+# create a script also setting SINGULARPATH
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+cat > $RPM_BUILD_ROOT%{_bindir}/Singular << EOF
+#!/bin/sh
+
+SINGULARPATH=%{singulardir} %{singulardir}/Singular-3-1-3 "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_bindir}/Singular
+
+# TSingular
+cat > $RPM_BUILD_ROOT%{_bindir}/TSingular << EOF
+#!/bin/sh
+
+%{singulardir}/TSingular --singular %{_bindir}/Singular "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_bindir}/TSingular
+
+# remove some wrong executable permissions
+chmod 644 $RPM_BUILD_ROOT%{singulardir}/LIB/*.lib
+
+# surfex
+cat > $RPM_BUILD_ROOT%{_bindir}/surfex << EOF
+#!/bin/sh
+
+%{singulardir}/surfex %{singulardir}/LIB/surfex "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_bindir}/surfex
+mkdir -p $RPM_BUILD_ROOT%{singulardir}/LIB/surfex/doc
+install -m644 Singular/LIB/surfex/doc/surfex_doc_linux.pdf \
+    $RPM_BUILD_ROOT%{singulardir}/LIB/surfex/doc/surfex_doc_linux.pdf
+
+# referenced in xemacs setup
+install -m644 emacs/singular.xpm $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular
+
+# remove suggested preferences
+rm -f $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-general
+
+# emacs autostart
+sed -i "s|<your-singular-emacs-home-directory>|%{_emacs_sitelispdir}/singular|" \
+    $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-singular
+mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
+mv $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-singular \
+     $RPM_BUILD_ROOT%{_emacs_sitestartdir}/singular-init.el
+
+# ESingular
+cat > $RPM_BUILD_ROOT%{_bindir}/ESingular << EOF
+#!/bin/sh
+
+export ESINGULAR_EMACS_LOAD=%{_emacs_sitestartdir}/singular-init.el
+export ESINGULAR_EMACS_DIR=%{_emacs_sitelispdir}/singular
+%{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_bindir}/ESingular
+
+pushd libfac
+    make DESTDIR=$RPM_BUILD_ROOT install
+    # not installed by default
+    install -m 644 libfac.a $RPM_BUILD_ROOT%{_libdir}/libfac.a
+popd
+
+pushd factory
+    make DESTDIR=$RPM_BUILD_ROOT install
+# make a version without singular defined
+    make clean
+%configure \
+	--bindir=%{singulardir} \
+	--includedir=%{_includedir}/factory \
+	--with-apint=gmp \
+	--with-gmp=%{_prefix} \
+	--with-ntl=%{_prefix} \
+	--with-NTL \
+	--without-Singular \
+	--enable-gmp=%{_prefix}
+    # avoid missing "print" symbols not used elsewhere
+    make CPPFLAGS="-DNOSTREAMIO=1" %{?_smp_mflags}
+    # not built by default
+    make libcfmem.a
+    # do not run make install again, just install non singular factory files
+    install -m 644 libcf.a $RPM_BUILD_ROOT%{_libdir}
+    install -m 644 libcfmem.a $RPM_BUILD_ROOT%{_libdir}
+    # automatically generated file at install time ignores includedir
+    sed	-e 's|<factory|<factory/factory|' \
+	-e 's|<templates/|<factory/templates/|' \
+	-i $RPM_BUILD_ROOT%{_includedir}/factory/templates/ftmpl_inst.cc
+popd
+
+%files
+%{_bindir}/Singular
+%{_bindir}/TSingular
+%doc %{singulardir}/COPYING
+%doc %{singulardir}/GPL2
+%doc %{singulardir}/GPL3
+%doc %{singulardir}/NEWS
+%doc %{singulardir}/README
+%dir %{singulardir}
+%dir %{singulardir}/LIB
+%doc %{singulardir}/LIB/COPYING
+%{singulardir}/LIB/*.lib
+%{singulardir}/LIB/help.cnf
+%{singulardir}/LIB/gftables
+%{singulardir}/doc
+%{singulardir}/info
+%{singulardir}/change_cost
+%{singulardir}/gen_test
+%{singulardir}/libparse
+%{singulardir}/LLL
+%{singulardir}/Singular*
+%{singulardir}/solve_IP
+%{singulardir}/surfex
+%{singulardir}/toric_ideal
+%{singulardir}/TSingular
+%{singulardir}/*.so
+%{_libdir}/libsingular.so
+
+%files		devel
+%{_includedir}/libsingular.h
+%{_includedir}/omalloc.h
+%{_includedir}/singular
+
+%files		-n factory-devel
+%doc factory/ChangeLog
+%doc factory/NEWS
+%doc factory/README
+%{_includedir}/factory
+%{_libdir}/libcf.a
+%{_libdir}/libcfmem.a
+%{_libdir}/libsingcf*.a
+
+%files		-n libfac-devel
+%doc libfac/00README
+%doc libfac/ChangeLog
+%doc libfac/COPYING
+%{_includedir}/factor.h
+%{_libdir}/libfac.a
+%{_libdir}/libsingfac*.a
+
+%files		examples
+%{singulardir}/examples
+
+%files		doc
+%doc %{singulardir}/html
+%doc %{singulardir}/*.html
+
+%files		surfex
+%{_bindir}/surfex
+%{singulardir}/surfex
+%{singulardir}/LIB/surfex
+
+%files		emacs
+%{_bindir}/ESingular
+%{singulardir}/ESingular
+%{_emacs_sitelispdir}/singular
+%{_emacs_sitestartdir}/singular-init.el
+
+%changelog
+* Sun Jul 8 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-6
+- Update license field to match valid values.
+- Provide newer libfac-devel matching Singular version (#819264).
+- Provide newer factory-devel matching Singular version (#819264).
+- Remove platform specific factoryconf.h file as only platform specific
+  contents it has is "#define INT64 long long int" what is not really correct,
+  neither completely wrong...
+
+* Sun Jul 1 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-5
+- Do not conflict Singular-devel with libfac-devel.
+
+* Sun Jul 1 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-4
+- Update license information to match COPYING information.
+
+* Wed May 9 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-3
+- Correct unresolved mmInit symbol in libsingular.so.
+
+* Sun May 6 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-2
+- Install singular factory headers in singular devel directory.
+- Tag singular-doc files as documentation.
+
+* Sat May 5 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-1
+- Initial Singular spec.
diff --git a/sources b/sources
index e69de29..a2e16d8 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+37e532fb6cece957e90a4be9ad1d375b  Singular-3-1-3-3.tar.gz


More information about the scm-commits mailing list