# -*- mode: cmake; -*- # # configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mod2.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/mod2.h) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_BINARY_DIR}) include_directories(${CMAKE_SOURCE_DIR}) include_directories(${CMAKE_SOURCE_DIR}/factory) include_directories(${CMAKE_SOURCE_DIR}/ntl/include) include(VersionMacros) include(KernelMacros) create_version(KVERSION) set(ADD_DEFS "NOSTREAMIO;${_OSDEF};HAVE_CONFIG_H;SINGULAR") mk_prcopy(PRCOPY ${CMAKE_CURRENT_SOURCE_DIR}/prCopy.pl) # C++ sources which are used if part of the kernel are dynamically linked #if(${DL_KERNEL}) set(proc_dyn_srcs p_Procs_Generate.cc p_Procs_Impl.h mod2.h) add_executable(p_Procs_Dynamic ${proc_dyn_srcs}) set_target_properties(p_Procs_Dynamic PROPERTIES COMPILE_DEFINITIONS "p_Procs_Dynamic") mk_procs(DL_KERNEL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/p_Procs_Dynamic "Dynamic") #else(${DL_KERNEL}) # set(DL_KERNEL_SRCS "") #endif(${DL_KERNEL}) # C++ sources which are used for dynamic libraries if part of the kernel is # dynamically linked set(proc_lib_srcs ${DL_KERNEL_SRCS} p_Procs_Generate.cc) add_executable(p_Procs_Lib ${proc_lib_srcs}) set_target_properties(p_Procs_Dynamic PROPERTIES COMPILE_DEFINITIONS "p_Procs_Lib") mk_procs(DL_LIB_SRCS ${CMAKE_CURRENT_BINARY_DIR}/p_Procs_Lib "Lib") # C++ sources which are used if no parts of the kernel are dynamically linked set(proc_static_srcs p_Procs_Generate.cc p_Procs_Impl.h mod2.h) add_executable(p_Procs_Static ${proc_static_srcs}) set_target_properties(p_Procs_Static PROPERTIES COMPILE_DEFINITIONS "p_Procs_Static") mk_procs(STATIC_SRCS ${CMAKE_CURRENT_BINARY_DIR}/p_Procs_Static "Static") # set(kernel_dl_srcs ${DL_LIB_SRCS} p_Procs_Dynamic.cc) set(dl_lib_srcs ${DL_LIB_SRCS} p_Procs_Lib.cc) set(kernel_static_srcs ${STATIC_SRCS} p_Procs_Static.cc) # # # # normal C++ source files set(kernel_srcs ${PRCOPY} clapconv.cc clapsing.cc febase.cc feread.cc feResource.cc ffields.cc hdegree.cc hilb.cc hutil.cc sca.cc gring.cc gr_kstd2.cc summator.cc ncSAMult.cc ncSACache.cc ncSAFormula.cc ideals.cc intvec.cc int64vec.cc khstd.cc kstdfac.cc kstd1.cc kstd2.cc kutil.cc longalg.cc longrat.cc longrat0.cc maps.cc matpol.cc misc.cc gnumpfl.cc gnumpc.cc rmodulo2m.cc rmodulon.cc rintegers.cc modulop.cc mpr_complex.cc sparsmat.cc fast_maps.cc fglmzero.cc fglmvec.cc fglmgauss.cc fglmhom.cc fglmcomb.cc numbers.cc polys.cc p_polys.cc polys0.cc polys1.cc polys-impl.cc ring.cc shortfl.cc kspoly.cc syz.cc syz0.cc syz1.cc syz2.cc syz3.cc timer.cc weight.cc GMPrat.cc multicnt.cc npolygon.cc semic.cc spectrum.cc splist.cc mod_raw.cc walkProc.cc walkMain.cc walkSupport.cc eigenval.cc units.cc kbuckets.cc sbuckets.cc mpr_inout.cc mpr_base.cc mpr_numeric.cc prCopy.cc p_Mult_q.cc pDebug.cc pInline2.cc pInline1.cc pInline0.cc pShallowCopyDelete.cc fast_mult.cc digitech.cc tgb.cc tgbgauss.cc ringgb.cc f5data.cc f5lists.cc f5gb.cc f5c.cc F5cLists.cc ratgring.cc shiftgb.cc gfan.cc linearAlgebra.cc ${KVERSION} weight0.c fegetopt.c fereadl.c dError.c mmstd.c ) set(kernel_hdrs hutil.h stairc.h ideals.h longalg.h structs.h intvec.h int64vec.h longrat.h numbers.h stype.h clapconv.h maps.h clapsing.h matpol.h polys.h p_polys.h syz.h ring.h timer.h dError.h fast_maps.h febase.h shortfl.h mpr_complex.h mpr_global.h summator.h ncSAMult.h ncSACache.h sca.h gring.h ncSAFormula.h walkProc.h walkMain.h walkSupport.h ffields.h khstd.h sparsmat.h gnumpfl.h gnumpc.h fglm.h kstd1.h rmodulo2m.h rmodulon.h rintegers.h modulop.h sing_dbm.h weight.h fglmgauss.h fglmvec.h kstdfac.h kmatrix.h kutil.h dbm_sl.h polys-impl.h GMPrat.h multicnt.h npolygon.h semic.h spectrum.h splist.h multicnt.h eigenval.h units.h mod_raw.h kbuckets.h sbuckets.h mpr_global.h mpr_inout.h mpr_base.h mpr_numeric.h fegetopt.h distrib.h ratgring.h shiftgb.h prCopy.h prCopyMacros.h p_MemAdd.h p_MemCopy.h p_MemCmp.h p_Numbers.h pInline2.h pInline1.h pInline0.h mmalloc.h omSingularConfig.h pShallowCopyDelete.h p_Procs_Dynamic.h p_Procs_Impl.h p_Procs_Set.h p_Procs.h p_Procs_Static.h p_Mult_q.h gfan.h ) # define the libraries to be created add_library(kernel STATIC ${kernel_static_srcs} ${kernel_srcs}) set_target_properties(kernel PROPERTIES COMPILE_DEFINITIONS "${ADD_DEFS}") if(${DL_KERNEL}) add_library(kernel_so SHARED ${kernel_dl_srcs} ${kernel_cxx_srcs} ${kernel_c_srcs}) set_target_properties(kernel_so PROPERTIES COMPILE_DEFINITIONS "${ADD_DEFS}") endif(${DL_KERNEL}) add_library(kernel_mmalloc STATIC mmalloc.cc) set_target_properties(kernel_mmalloc PROPERTIES COMPILE_DEFINITIONS "${ADD_DEFS} ${CMAKE_CXX_FLAGS_DEBUG}") add_library(sg-fegetopt fegetopt.c)