diff --git a/data/configure.conf b/data/configure.conf new file mode 100644 index 0000000..cf42ad2 --- /dev/null +++ b/data/configure.conf @@ -0,0 +1,6 @@ +[programs] +ccshared=$(CC) -shared +cxx=c++ +ln=ln -f +mkdir=mkdir -m 0755 -p +rm=rm -f diff --git a/data/project.conf b/data/project.conf new file mode 100644 index 0000000..7c91e54 --- /dev/null +++ b/data/project.conf @@ -0,0 +1,4 @@ +dist=Makefile,configure.conf + +[configure.conf] +install=$(PREFIX)/share/configure diff --git a/project.conf b/project.conf index 77fbc38..f745c62 100644 --- a/project.conf +++ b/project.conf @@ -2,7 +2,7 @@ package=configure version=0.2.3 config=h,sh -subdirs=doc,src,tests,tools +subdirs=data,doc,src,tests,tools dist=Makefile,AUTHORS,BUGS,CHANGES,COPYING,config.h,config.sh,INSTALL.md,README.md [AUTHORS] diff --git a/src/configure.c b/src/configure.c index 2cf81cb..51b49af 100644 --- a/src/configure.c +++ b/src/configure.c @@ -45,6 +45,13 @@ # define PROGNAME PACKAGE #endif +#ifndef PREFIX +# define PREFIX "/usr/local" +#endif +#ifndef DATADIR +# define DATADIR PREFIX "/share" +#endif + /* Configure */ /* private */ @@ -323,6 +330,7 @@ static int _configure_detect_programs(Configure * configure) { int ret = 0; String const section[] = "programs"; + String const filename[] = DATADIR "/" PACKAGE "/" PACKAGE ".conf"; struct { String const * name; @@ -343,6 +351,9 @@ static int _configure_detect_programs(Configure * configure) if(config_set(configure->programs, section, programs[i].name, programs[i].program) != 0) return -1; + if(config_load(configure->programs, filename) != 0) + configure_error(DATADIR "/" PACKAGE "/" PACKAGE ".conf: " + "Could not load program definitions", 0); /* platform-specific */ switch(configure->os) {