Commit 04a398bb authored by Claus Jonathan Fritzemeier's avatar Claus Jonathan Fritzemeier
Browse files

merged master with writeSBML branch

parents 4f3015c4 3b8f5e09
Package: sybilSBML Package: sybilSBML
Type: Package Type: Package
Title: SBML Integration in Package 'Sybil' Title: SBML Integration in Package 'Sybil'
Version: 2.0.11 Version: 3.0.1
Date: 2016-06-06 Date: 2016-12-16
Authors@R: c(person(c("C.", "Jonathan"), "Fritzemeier", role = c("cre", "ctb"), email = "clausjonathan.fritzemeier@uni-duesseldorf.de"), Authors@R: c(person(c("C.", "Jonathan"), "Fritzemeier", role = c("cre", "ctb"), email = "clausjonathan.fritzemeier@uni-duesseldorf.de"),
person("Gabriel", "Gelius-Dietrich", role = c("aut", "ctb")), person("Gabriel", "Gelius-Dietrich", role = c("aut", "ctb")),
person("Deya", "Alzoubi", role = "ctb")) person("Deya", "Alzoubi", role = "ctb"),
person("Ardalan", "Habil", role = "ctb"))
Maintainer: C. Jonathan Fritzemeier <clausjonathan.fritzemeier@uni-duesseldorf.de> Maintainer: C. Jonathan Fritzemeier <clausjonathan.fritzemeier@uni-duesseldorf.de>
Depends: R (>= 2.14.2), Matrix, sybil (>= 2.0.0) Depends: R (>= 2.14.2), Matrix, sybil (>= 2.0.0)
Imports: methods Imports: methods
Description: 'SBML' (Systems Biology Markup Language) integration in 'sybil'. Many constraint based metabolic models are published in 'SBML' format ('*.xml'). Herewith is the ability to read and check 'SBML' files in 'sybil' provided. Description: 'SBML' (Systems Biology Markup Language) with FBC (Flux Balance Constraints) integration in 'sybil'. Many constraint based metabolic models are published in 'SBML' format ('*.xml'). Herewith is the ability to read, write, and check 'SBML' files in 'sybil' provided.
License: GPL-3 | file LICENSE License: GPL-3 | file LICENSE
LazyLoad: yes LazyLoad: yes
Collate: generics.R sbmlPtrClass.R sbmlErrorClass.R sybilSBML.R Collate: generics.R sbmlPtrClass.R sbmlErrorClass.R sybilSBML.R
uglyHack.R readSBMLmod.R zzz.R uglyHack.R readSBMLmod.R zzz.R
Packaged: 2015-06-06 07:11:55 UTC; jonathan Packaged: 2016-12-16 07:11:55 UTC; jonathan
Author: C. Jonathan Fritzemeier [cre, ctb], Author: C. Jonathan Fritzemeier [cre, ctb],
Gabriel Gelius-Dietrich [aut, ctb], Gabriel Gelius-Dietrich [aut, ctb],
Deya Alzoubi [ctb] Deya Alzoubi [ctb],
Ardalan Habil [ctb]
NeedsCompilation: yes NeedsCompilation: yes
Repository: CRAN Repository: CRAN
...@@ -48,5 +48,9 @@ getSBMLunitDefinitionsList, ...@@ -48,5 +48,9 @@ getSBMLunitDefinitionsList,
getSBMLCompartList, getSBMLCompartList,
getSBMLSpeciesList, getSBMLSpeciesList,
getSBMLReactionsList, getSBMLReactionsList,
readSBMLmod readSBMLmod,
writeSBML,
getSBMLFbcversion,
getSBMLmodNotes,
getSBMLmodAnnotation
) )
...@@ -247,7 +247,13 @@ parseNotesReact <- function(notes) { ...@@ -247,7 +247,13 @@ parseNotesReact <- function(notes) {
gpr <- sub("GENE[_ ]?ASSOCIATION: *", "", fields_str[j]) gpr <- sub("GENE[_ ]?ASSOCIATION: *", "", fields_str[j])
gene_rule <- sybil:::.parseBoolean(gpr) gene_rule <- sybil:::.parseBoolean(gpr)
#print(gene_rule) #print(gene_rule)
}
}#Ardalan Habil
else if (grepl("GPR[_ ]?ASSOCIATION", fields_str[j])) {
gpr <- sub("GPR[_ ]?ASSOCIATION: *", "", fields_str[j])
gene_rule <- sybil:::.parseBoolean(gpr)
}
if (charmatch("SUBSYSTEM", fields_str[j], nomatch = -1) != -1) { if (charmatch("SUBSYSTEM", fields_str[j], nomatch = -1) != -1) {
subSyst <- sub("SUBSYSTEM: *", "", fields_str[j]) subSyst <- sub("SUBSYSTEM: *", "", fields_str[j])
subSyst <- sub("^S_", "", subSyst, perl = TRUE) subSyst <- sub("^S_", "", subSyst, perl = TRUE)
...@@ -283,6 +289,14 @@ sbmldoc <- openSBMLfile(filename) ...@@ -283,6 +289,14 @@ sbmldoc <- openSBMLfile(filename)
message("OK") message("OK")
# warning if new Version/Level/
SBMLlevel<- getSBMLlevel(sbmldoc)
SBMLversion<- getSBMLversion(sbmldoc)
FBCversion<-getSBMLFbcversion(sbmldoc)
if(SBMLlevel == 3 && SBMLversion > 1)
warning(paste("No support for Level 3 Version ",SBMLversion))
if (FBCversion > 2)
warning(paste("No support for Fbc Version ",FBCversion))
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# check the model # # check the model #
...@@ -380,6 +394,7 @@ if (mdesc == filename) { ...@@ -380,6 +394,7 @@ if (mdesc == filename) {
sybil::mod_desc(mod) <- mdesc sybil::mod_desc(mod) <- mdesc
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# units # # units #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
...@@ -398,7 +413,7 @@ if (is.null(compartmentsList)) { ...@@ -398,7 +413,7 @@ if (is.null(compartmentsList)) {
} }
missingId(compartmentsList) missingId(compartmentsList)
sybil::mod_compart(mod) <- compartmentsList[["id"]] comp_tmp_id <- compartmentsList[["id"]]
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
...@@ -430,6 +445,7 @@ missingId(metabolitesList) ...@@ -430,6 +445,7 @@ missingId(metabolitesList)
metSpIds <- metabolitesList[["id"]] metSpIds <- metabolitesList[["id"]]
#nummet <- getSBMLnumSpecies(sbmlmod) #nummet <- getSBMLnumSpecies(sbmlmod)
if (isTRUE(bndCond)) { if (isTRUE(bndCond)) {
metSpBnd <- metabolitesList[["boundaryCondition"]] metSpBnd <- metabolitesList[["boundaryCondition"]]
met_id_pos <- !metSpBnd met_id_pos <- !metSpBnd
...@@ -485,12 +501,20 @@ gpr <- character(numreact) ...@@ -485,12 +501,20 @@ gpr <- character(numreact)
hasNotes <- FALSE hasNotes <- FALSE
hasAnnot <- FALSE hasAnnot <- FALSE
#FBC contraints @Ardalan Habil
fbclowbnd<-reactionsList[["fbc_lowbnd"]]
fbcuppbnd<-reactionsList[["fbc_uppbnd"]]
fbcgprRules<-reactionsList[["fbc_gprRules"]]
fbcObjectives<-reactionsList[["fbc_Objectives"]]
for (i in 1 : numreact) { for (i in 1 : numreact) {
# the notes/annotations field # the notes/annotations field
notes <- reactionsList[["notes"]][i] notes <- reactionsList[["notes"]][i]
annot <- reactionsList[["annotation"]][i] annot <- reactionsList[["annotation"]][i]
# Notes und Annotation can be null ( @Ardalan Habil)
if(!is.null( reactionsList[["notes"]]))
if (nchar(notes) > 0) { if (nchar(notes) > 0) {
hasNotes <- TRUE hasNotes <- TRUE
...@@ -504,7 +528,7 @@ for (i in 1 : numreact) { ...@@ -504,7 +528,7 @@ for (i in 1 : numreact) {
} }
else { else {
if(!is.null( reactionsList[["annotation"]]))
if (nchar(annot) > 0) { if (nchar(annot) > 0) {
hasAnnot <- TRUE hasAnnot <- TRUE
pn <- regexpr("Pathway Name: [^<]+", annot, perl = TRUE) pn <- regexpr("Pathway Name: [^<]+", annot, perl = TRUE)
...@@ -512,7 +536,18 @@ for (i in 1 : numreact) { ...@@ -512,7 +536,18 @@ for (i in 1 : numreact) {
} }
} }
fbcgene_rule <- NA
if ( !is.null(fbcgprRules))
{
fbcgene_rule<- sybil:::.parseBoolean(fbcgprRules[i])
genes[[i]] <- fbcgene_rule$gene # list of genes
rules[i] <- fbcgene_rule$rule # rules
gpr[i] <- fbcgprRules[i]
}
# Check here if reactants and products lists exist, same for the stoichiometry slot # Check here if reactants and products lists exist, same for the stoichiometry slot
...@@ -565,6 +600,16 @@ for (i in 1 : numreact) { ...@@ -565,6 +600,16 @@ for (i in 1 : numreact) {
# } # }
# the constraints # the constraints
#FBC contraints @Ardalan Habil
if ( !is.null(fbclowbnd) && !is.null(fbcuppbnd))
{
lbnd[i] <- checkupplowbnd(fbclowbnd[i])
ubnd[i] <- checkupplowbnd(fbcuppbnd[i])
}
#read from kinetic_law if fbc is empty
else
{
parm <- reactionsList[["kinetic_law"]][[i]] parm <- reactionsList[["kinetic_law"]][[i]]
if (is.null(parm)) { if (is.null(parm)) {
ubnd[i] <- def_bnd ubnd[i] <- def_bnd
...@@ -591,10 +636,16 @@ for (i in 1 : numreact) { ...@@ -591,10 +636,16 @@ for (i in 1 : numreact) {
# reduced cost? (sbml file) # reduced cost? (sbml file)
} }
} }
}
#FBC Objective @Ardalan Habil
if(!is.null(fbcObjectives))
{
ocof[i]<-as.numeric(fbcObjectives[i])
}
} }
# ---------------------------------------------------------------------------- # # ---------------------------------------------------------------------------- #
# search for unused metabolites and unused reactions # search for unused metabolites and unused reactions
...@@ -877,7 +928,7 @@ else { ...@@ -877,7 +928,7 @@ else {
rules <- rules[SKIP_REACTION] rules <- rules[SKIP_REACTION]
gpr <- gpr[SKIP_REACTION] gpr <- gpr[SKIP_REACTION]
if (isTRUE(hasNotes)) { if (isTRUE(hasNotes) || !is.null(fbcgprRules) ) {
message("GPR mapping ... ", appendLF = FALSE) message("GPR mapping ... ", appendLF = FALSE)
#allGenes <- unique(allGenes) #allGenes <- unique(allGenes)
...@@ -897,14 +948,13 @@ else { ...@@ -897,14 +948,13 @@ else {
if ( (length(genes[[i]] == 1)) && (genes[[i]] != "") ) { if ( (length(genes[[i]] == 1)) && (genes[[i]] != "") ) {
geneInd <- match(genes[[i]], allGenes) geneInd <- match(genes[[i]], allGenes)
rxnGeneMat[i, geneInd] <- TRUE rxnGeneMat[i, geneInd] <- TRUE
# no use because new gprRule format for (j in 1 : length(geneInd)) {
# for (j in 1 : length(geneInd)) { pat <- paste("x(", j, ")", sep = "")
# pat <- paste("x(", j, ")", sep = "") repl <- paste("x[", geneInd[j], "]", sep = "")
# repl <- paste("x[", geneInd[j], "]", sep = "")
# rules[i] <- gsub(pat, repl, rules[i], fixed = TRUE)
# rules[i] <- gsub(pat, repl, rules[i], fixed = TRUE) }
# }
} }
} }
...@@ -970,6 +1020,63 @@ react_name_tmp <- sub( "\\s+$", "", react_name_tmp, perl = TRUE) ...@@ -970,6 +1020,63 @@ react_name_tmp <- sub( "\\s+$", "", react_name_tmp, perl = TRUE)
sybil::react_name(mod) <- react_name_tmp sybil::react_name(mod) <- react_name_tmp
#------------------------------------------------------------------------------#
# Reaction Attr @Ardalan #
#------------------------------------------------------------------------------#
# Test for new Slots
if( .hasSlot(mod,"mod_attr") && .hasSlot(mod,"comp_attr") && .hasSlot(mod,"met_attr") && .hasSlot(mod,"react_attr") )
newSybil<-TRUE
else newSybil<-FALSE
numreact<-nummet <- sum(SKIP_REACTION)
reactannotation <- reactionsList[["annotation"]][SKIP_REACTION]
reactnotes <- reactionsList[["notes"]][SKIP_REACTION]
if(newSybil)
{
sybil::react_attr(mod) <-data.frame(row.names=1:numreact)
#Speed optimierung durch notes NULL falls nichts drin steht
if( !is.null(reactannotation) && length(reactannotation)==numreact )sybil::react_attr(mod)[['annotation']]<-reactannotation
if( !is.null(reactnotes) && length(reactnotes)==numreact )sybil::react_attr(mod)[['notes']]<-reactnotes
}
#------------------------------------------------------------------------------#
# Model Attr @Ardalan #
#------------------------------------------------------------------------------#
modanno<-getSBMLmodAnnotation(sbmlmod)
modnotes<-getSBMLmodNotes(sbmlmod)
if(newSybil)
{
sybil::mod_attr(mod) <-data.frame(row.names=1)
if(nchar(modanno)>1)sybil::mod_attr(mod)[['annotation']]<-modanno
if(nchar(modnotes)>1)sybil::mod_attr(mod)[['notes']]<-modnotes
}
#------------------------------------------------------------------------------#
# compartments Attr @Ardalan #
#------------------------------------------------------------------------------#
# Define SKIP_COMPARTMENT FALSE= HAS NO REFERENCE
met_comp_tmp <- metabolitesList[["compartment"]][met_id_pos][SKIP_METABOLITE]
SKIP_COMPARTMENT<- comp_tmp_id %in% unique(met_comp_tmp)
sybil::mod_compart(mod) <- comp_tmp_id[SKIP_COMPARTMENT]
numcom<-length(mod_compart(mod))
comannotation <- compartmentsList[["annotation"]][SKIP_COMPARTMENT]
comnotes <- compartmentsList[["notes"]][SKIP_COMPARTMENT]
if(newSybil)
{
sybil::comp_attr(mod) <-data.frame(row.names=1:numcom)
if( !is.null(comannotation) && length(comannotation)==numcom )sybil::comp_attr(mod)[['annotation']]<-comannotation
if( !is.null(comnotes) && length(comnotes)==numcom )sybil::comp_attr(mod)[['notes']]<-comnotes
}
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# metabolite id's # # metabolite id's #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
...@@ -985,7 +1092,7 @@ sybil::met_id(mod) <- gsub("-", "_", met_id_tmp, fixed = TRUE) ...@@ -985,7 +1092,7 @@ sybil::met_id(mod) <- gsub("-", "_", met_id_tmp, fixed = TRUE)
# metabolite compartments # # metabolite compartments #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
met_comp_tmp <- metabolitesList[["compartment"]][met_id_pos][SKIP_METABOLITE] #met_comp_tmp <- metabolitesList[["compartment"]][met_id_pos][SKIP_METABOLITE]
sybil::met_comp(mod) <- match(met_comp_tmp, sybil::mod_compart(mod)) sybil::met_comp(mod) <- match(met_comp_tmp, sybil::mod_compart(mod))
...@@ -1002,6 +1109,69 @@ met_name_tmp <- sub( "\\s+$", "", met_name_tmp, perl = TRUE) ...@@ -1002,6 +1109,69 @@ met_name_tmp <- sub( "\\s+$", "", met_name_tmp, perl = TRUE)
sybil::met_name(mod) <- met_name_tmp sybil::met_name(mod) <- met_name_tmp
#------------------------------------------------------------------------------#
# metabolite attr @Ardalan Habil #
#------------------------------------------------------------------------------#
#ChemicalFormula Charge Notes Annotation MetaID @Ardalan Habil
metformula <- metabolitesList[["chemicalFormula"]][met_id_pos][SKIP_METABOLITE]
metcharge <- metabolitesList[["charge"]][met_id_pos][SKIP_METABOLITE]
metnotes <- metabolitesList[["notes"]][met_id_pos][SKIP_METABOLITE]
metannotation <- metabolitesList[["annotation"]][met_id_pos][SKIP_METABOLITE]
metchargenote<-NULL
metformulanote<-NULL
# check metnotes for Formula and Charge
if( !is.null(metnotes) && length(metnotes==nummet))
{
pn <- regexpr("FORMULA: [^<]+", metnotes, perl = TRUE)
metformulanote <- substr(metnotes, (pn+9), pn + ((attr(pn, "match.length"))-1))
pn <- regexpr("CHARGE: [^<]+", metnotes, perl = TRUE)
metchargenote <- substr(metnotes, (pn+8), pn + ((attr(pn, "match.length"))-1))
metchargenote <- as.integer(metchargenote)
metchargenote[is.na(metchargenote)] <- 0
}
nummet <- sum(SKIP_METABOLITE)
if(newSybil)
{
# save attributes to met_attr slot
sybil::met_attr(mod) <-data.frame(row.names=1:nummet)
if( !is.null(metformula) && length(metformula)==nummet)
{sybil::met_attr(mod)[['chemicalFormula']]<-metformula}
else{
if(length(metformulanote)==nummet)
{ if(max(nchar(metformulanote)) >0)
sybil::met_attr(mod)[['chemicalFormula']]<-metformulanote
}
}
if( !is.null(metcharge) && length(metcharge)==nummet && sum(metcharge)!=0)
{sybil::met_attr(mod)[['charge']]<-metcharge}
else{
if( length(metchargenote)==nummet)
{ if(max(nchar(metchargenote)) >0)
sybil::met_attr(mod)[['charge']]<-metchargenote
}
}
if( !is.null(metnotes) && length(metnotes)==nummet)sybil::met_attr(mod)[['notes']]<-metnotes
if( !is.null(metannotation) && length(metannotation)==nummet)sybil::met_attr(mod)[['annotation']]<-metannotation
# Save boundaryCondition when bndCond=FALSE
if (!isTRUE(bndCond)) {
metBnd <- metabolitesList[["boundaryCondition"]][met_id_pos][SKIP_METABOLITE]
# When all metBnd = False -> metabolite removed by extMetFlag
if( !is.null(metBnd) && length(metBnd)==nummet && !all(metBnd == FALSE) )sybil::met_attr(mod)[['boundaryCondition']]<-metBnd
}
}
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# check reversibilities # # check reversibilities #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
......
This diff is collapsed.
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for sybilSBML 2.0.8. # Generated by GNU Autoconf 2.69 for sybilSBML 3.0.0.
# #
# Report bugs to <geliudie@uni-duesseldorf.de>. # Report bugs to <clausjonathan.fritzemeier@uni-duesseldorf.de>.
# #
# #
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
...@@ -267,8 +267,8 @@ fi ...@@ -267,8 +267,8 @@ fi
$as_echo "$0: be upgraded to zsh 4.3.4 or later." $as_echo "$0: be upgraded to zsh 4.3.4 or later."
else else
$as_echo "$0: Please tell bug-autoconf@gnu.org and $as_echo "$0: Please tell bug-autoconf@gnu.org and
$0: geliudie@uni-duesseldorf.de about your system, $0: clausjonathan.fritzemeier@uni-duesseldorf.de about your
$0: including any error possibly output before this $0: system, including any error possibly output before this
$0: message. Then install a modern shell, or manually run $0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one." $0: the script under such a shell if you do have one."
fi fi
...@@ -580,9 +580,9 @@ MAKEFLAGS= ...@@ -580,9 +580,9 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='sybilSBML' PACKAGE_NAME='sybilSBML'
PACKAGE_TARNAME='sybilsbml' PACKAGE_TARNAME='sybilsbml'
PACKAGE_VERSION='2.0.8' PACKAGE_VERSION='3.0.0'
PACKAGE_STRING='sybilSBML 2.0.8' PACKAGE_STRING='sybilSBML 3.0.0'
PACKAGE_BUGREPORT='geliudie@uni-duesseldorf.de' PACKAGE_BUGREPORT='clausjonathan.fritzemeier@uni-duesseldorf.de'
PACKAGE_URL='' PACKAGE_URL=''
# Factoring default headers for most tests. # Factoring default headers for most tests.
...@@ -1230,7 +1230,7 @@ if test "$ac_init_help" = "long"; then ...@@ -1230,7 +1230,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures sybilSBML 2.0.8 to adapt to many kinds of systems. \`configure' configures sybilSBML 3.0.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
...@@ -1291,7 +1291,7 @@ fi ...@@ -1291,7 +1291,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of sybilSBML 2.0.8:";; short | recursive ) echo "Configuration of sybilSBML 3.0.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
...@@ -1315,7 +1315,7 @@ Some influential environment variables: ...@@ -1315,7 +1315,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations. it to find libraries and programs with nonstandard names/locations.
Report bugs to <geliudie@uni-duesseldorf.de>. Report bugs to <clausjonathan.fritzemeier@uni-duesseldorf.de>.
_ACEOF _ACEOF
ac_status=$? ac_status=$?
fi fi
...@@ -1378,7 +1378,7 @@ fi ...@@ -1378,7 +1378,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
sybilSBML configure 2.0.8 sybilSBML configure 3.0.0
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
...@@ -1537,9 +1537,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} ...@@ -1537,9 +1537,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
( $as_echo "## ------------------------------------------ ## ( $as_echo "## ----------------------------------------------------------- ##
## Report this to geliudie@uni-duesseldorf.de ## ## Report this to clausjonathan.fritzemeier@uni-duesseldorf.de ##
## ------------------------------------------ ##" ## ----------------------------------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2 ) | sed "s/^/$as_me: WARNING: /" >&2
;; ;;
esac esac
...@@ -1676,11 +1676,78 @@ fi ...@@ -1676,11 +1676,78 @@ fi
as_fn_set_status $ac_retval as_fn_set_status $ac_retval
} # ac_fn_c_try_link } # ac_fn_c_try_link
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main ()
{
return $2 ();
;
return 0;
}
_ACEOF