Reading source files for binary type sections

This commit is contained in:
Pierre Pronchery 2004-06-28 11:18:17 +00:00
parent f124022b78
commit 34b7e6c10c

View File

@ -4,6 +4,8 @@
#include <unistd.h>
extern int optind;
#include <stdio.h>
#include <string.h>
#include <libutils/libutils.h>
@ -33,11 +35,82 @@ static int _configure(char const * directory)
return res;
}
static int _configure_target(Config * config, char const * target);
static int _configure_config(Config * config)
{
char * targets;
char * cur;
if((targets = config_get(config, "", "targets")) == NULL
|| *targets == '\0')
{
fprintf(stderr, "%s", "configure: no targets found\n");
return 1;
}
for(cur = targets; *targets; targets++)
{
if(*targets != ',')
continue;
*targets = '\0';
_configure_target(config, cur);
cur = targets + 1;
}
_configure_target(config, cur);
return 0;
}
static int _configure_binary(Config * config, char const * target);
static int _configure_library(Config * config, char const * target);
static int _configure_target(Config * config, char const * target)
{
char * type;
if((type = config_get(config, target, "type")) == NULL)
{
fprintf(stderr, "%s%s%s", "configure: target \"", target,
"\" has empty type\n");
return 1;
}
if(strcmp("binary", type) == 0)
return _configure_binary(config, target);
if(strcmp("library", type) == 0)
return _configure_library(config, target);
fprintf(stderr, "%s%s%s%s%s", "configure: target \"", target,
"\" has unknown type \"", type, "\"\n");
return 1;
}
static int _configure_binary(Config * config, char const * target)
{
char * sources;
char * cur;
if((sources = config_get(config, target, "sources")) == NULL
|| *sources == '\0')
{
fprintf(stderr, "%s%s%s", "configure: target \"", target,
"\" has empty type\n");
return 1;
}
for(cur = sources; *sources; sources++)
{
if(*sources != ',')
continue;
fprintf(stderr, "%s%s%s", "configure: would add source \"",
cur, "\"\n");
cur = sources + 1;
}
fprintf(stderr, "%s%s%s", "configure: would add source \"",
cur, "\"\n");
return 0;
}
static int _configure_library(Config * config, char const * target)
{
fprintf(stderr, "%s", "configure: libraries are not implemented yet\n");
return 1;
}
/* usage */
static int _usage(void)
@ -50,7 +123,6 @@ static int _usage(void)
/* main */
int main(int argc, char * argv[])
{
Config * config;
int o;
while((o = getopt(argc, argv, "h")) != -1)