Implemented preliminary installation path detection and manual setting
This commit is contained in:
parent
8b84b42438
commit
49a5705683
@ -3,10 +3,13 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <System.h>
|
#include <System.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
#include "makefile.h"
|
#include "makefile.h"
|
||||||
#include "configure.h"
|
#include "configure.h"
|
||||||
|
|
||||||
@ -16,7 +19,7 @@
|
|||||||
const String * sHostArch[HA_LAST+1] =
|
const String * sHostArch[HA_LAST+1] =
|
||||||
{
|
{
|
||||||
"i386", "i486", "i586", "i686",
|
"i386", "i486", "i586", "i686",
|
||||||
"sparc",
|
"sparc", "sparc64",
|
||||||
"unknown"
|
"unknown"
|
||||||
};
|
};
|
||||||
const String * sHostOS[HO_LAST+1] =
|
const String * sHostOS[HO_LAST+1] =
|
||||||
@ -28,7 +31,7 @@ const String * sHostOS[HO_LAST+1] =
|
|||||||
const String * sHostKernel[HK_LAST+1] =
|
const String * sHostKernel[HK_LAST+1] =
|
||||||
{
|
{
|
||||||
"2.0", "2.2", "2.4", "2.6",
|
"2.0", "2.2", "2.4", "2.6",
|
||||||
"2.0",
|
"2.0", "3.0",
|
||||||
"unknown"
|
"unknown"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -87,24 +90,25 @@ static int _configure(Prefs * prefs, char const * directory)
|
|||||||
Configure cfgr;
|
Configure cfgr;
|
||||||
configArray * ca;
|
configArray * ca;
|
||||||
int ret;
|
int ret;
|
||||||
|
int flags = prefs->flags;
|
||||||
int i;
|
int i;
|
||||||
Config * p;
|
Config * p;
|
||||||
|
|
||||||
if((ca = configarray_new()) == NULL)
|
if((ca = configarray_new()) == NULL)
|
||||||
return configure_error("libSystem", 2);
|
return configure_error("libSystem", 2);
|
||||||
cfgr.prefs = *prefs;
|
cfgr.prefs = prefs;
|
||||||
_configure_detect(&cfgr);
|
_configure_detect(&cfgr);
|
||||||
ret = _configure_load(prefs, directory, ca);
|
ret = _configure_load(prefs, directory, ca);
|
||||||
if(ret == 0)
|
if(ret == 0)
|
||||||
{
|
{
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
ret = _configure_do(&cfgr, ca);
|
ret = _configure_do(&cfgr, ca);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cfgr.prefs = PREFS_n;
|
prefs->flags = PREFS_n;
|
||||||
if(_configure_do(&cfgr, ca) == 0)
|
if(_configure_do(&cfgr, ca) == 0)
|
||||||
{
|
{
|
||||||
cfgr.prefs = *prefs;
|
prefs->flags = flags;
|
||||||
ret = _configure_do(&cfgr, ca);
|
ret = _configure_do(&cfgr, ca);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,7 +140,7 @@ static void _configure_detect(Configure * configure)
|
|||||||
configure->os = enum_string(HO_LAST, sHostOS, un.sysname);
|
configure->os = enum_string(HO_LAST, sHostOS, un.sysname);
|
||||||
configure->kernel = enum_string_short(HK_LAST, sHostKernel,
|
configure->kernel = enum_string_short(HK_LAST, sHostKernel,
|
||||||
un.release);
|
un.release);
|
||||||
if(configure->prefs & PREFS_v)
|
if(configure->prefs->flags & PREFS_v)
|
||||||
printf("Detected system %s version %s on %s\n",
|
printf("Detected system %s version %s on %s\n",
|
||||||
sHostOS[configure->os],
|
sHostOS[configure->os],
|
||||||
sHostKernel[configure->kernel],
|
sHostKernel[configure->kernel],
|
||||||
@ -164,7 +168,7 @@ static int _configure_load(Prefs * prefs, String const * directory,
|
|||||||
return configure_error(directory, 1);
|
return configure_error(directory, 1);
|
||||||
}
|
}
|
||||||
config_set(config, "", "directory", directory);
|
config_set(config, "", "directory", directory);
|
||||||
if(*prefs & PREFS_v)
|
if(prefs->flags & PREFS_v)
|
||||||
printf("%s%s%s", "Loading project file ", path, "\n");
|
printf("%s%s%s", "Loading project file ", path, "\n");
|
||||||
if(config_load(config, path) != 0)
|
if(config_load(config, path) != 0)
|
||||||
ret = configure_error(path, 1);
|
ret = configure_error(path, 1);
|
||||||
@ -252,11 +256,20 @@ static int _configure_do(Configure * configure, configArray * ca)
|
|||||||
|
|
||||||
|
|
||||||
/* usage */
|
/* usage */
|
||||||
|
static void _prefs_init(Prefs * prefs);
|
||||||
static int _usage(void)
|
static int _usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s", "Usage: configure [-nv][directory]\n\
|
Prefs prefs;
|
||||||
-n do not actually write Makefiles\n\
|
|
||||||
-v verbose mode\n");
|
_prefs_init(&prefs);
|
||||||
|
fprintf(stderr, "%s%s%s%s%s%s%s",
|
||||||
|
"Usage: configure [-nv][options...][directory]\n\
|
||||||
|
-n Do not actually write Makefiles\n\
|
||||||
|
-v Verbose mode\n\
|
||||||
|
-b Binary files directory (default: \"", prefs.bindir, "\")\n\
|
||||||
|
-d Destination prefix (default: \"\")\n\
|
||||||
|
-i Include files directory (default: \"", prefs.includedir, "\")\n\
|
||||||
|
-p Installation directory prefix (default: \"", prefs.prefix, "\")\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,17 +277,30 @@ static int _usage(void)
|
|||||||
/* main */
|
/* main */
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
Prefs prefs = 0;
|
Prefs prefs;
|
||||||
int o;
|
int o;
|
||||||
|
|
||||||
while((o = getopt(argc, argv, "nv")) != -1)
|
_prefs_init(&prefs);
|
||||||
|
while((o = getopt(argc, argv, "d:i:np:v")) != -1)
|
||||||
switch(o)
|
switch(o)
|
||||||
{
|
{
|
||||||
|
case 'b':
|
||||||
|
prefs.bindir = optarg;
|
||||||
|
break;
|
||||||
|
case 'd':
|
||||||
|
prefs.destdir = optarg;
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
prefs.includedir = optarg;
|
||||||
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
prefs |= PREFS_n;
|
prefs.flags |= PREFS_n;
|
||||||
|
break;
|
||||||
|
case 'p':
|
||||||
|
prefs.prefix = optarg;
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
prefs |= PREFS_v;
|
prefs.flags |= PREFS_v;
|
||||||
break;
|
break;
|
||||||
case '?':
|
case '?':
|
||||||
return _usage();
|
return _usage();
|
||||||
@ -283,3 +309,21 @@ int main(int argc, char * argv[])
|
|||||||
return _usage();
|
return _usage();
|
||||||
return _configure(&prefs, argc - optind == 1 ? argv[argc - 1] : ".");
|
return _configure(&prefs, argc - optind == 1 ? argv[argc - 1] : ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _prefs_init(Prefs * prefs)
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
memset(prefs, 0, sizeof(Prefs));
|
||||||
|
prefs->destdir = "";
|
||||||
|
if(stat("/usr", &st) == 0) /* FIXME see below */
|
||||||
|
{
|
||||||
|
prefs->bindir = "bin";
|
||||||
|
prefs->includedir = "include";
|
||||||
|
prefs->prefix = "/usr/local";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
prefs->bindir = "Binaries";
|
||||||
|
prefs->includedir = "Include";
|
||||||
|
prefs->prefix = "/Apps"; /* FIXME detect System or Apps/x first */
|
||||||
|
}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
typedef enum _HostArch
|
typedef enum _HostArch
|
||||||
{
|
{
|
||||||
HA_I386, HA_I486, HA_I586, HA_I686,
|
HA_I386, HA_I486, HA_I586, HA_I686,
|
||||||
HA_SPARC,
|
HA_SPARC, HA_SPARC64,
|
||||||
HA_UNKNOWN
|
HA_UNKNOWN
|
||||||
} HostArch;
|
} HostArch;
|
||||||
# define HA_LAST HA_UNKNOWN
|
# define HA_LAST HA_UNKNOWN
|
||||||
@ -27,10 +27,10 @@ typedef enum _HostOS
|
|||||||
# define HO_LAST HO_UNKNOWN
|
# define HO_LAST HO_UNKNOWN
|
||||||
extern const String * sHostOS[HO_LAST+1];
|
extern const String * sHostOS[HO_LAST+1];
|
||||||
|
|
||||||
typedef enum _HostKernel
|
typedef enum _HostKernel /* FIXME feels wrong */
|
||||||
{
|
{
|
||||||
HK_LINUX20, HK_LINUX22, HK_LINUX24, HK_LINUX26,
|
HK_LINUX20, HK_LINUX22, HK_LINUX24, HK_LINUX26,
|
||||||
HK_NETBSD,
|
HK_NETBSD20, HK_NETBSD30,
|
||||||
HK_UNKNOWN
|
HK_UNKNOWN
|
||||||
} HostKernel;
|
} HostKernel;
|
||||||
# define HK_LAST HK_UNKNOWN
|
# define HK_LAST HK_UNKNOWN
|
||||||
@ -59,12 +59,19 @@ String * _source_extension(String * source);
|
|||||||
|
|
||||||
/* configure */
|
/* configure */
|
||||||
/* types */
|
/* types */
|
||||||
typedef int Prefs;
|
typedef struct _Prefs
|
||||||
|
{
|
||||||
|
int flags;
|
||||||
|
char * bindir;
|
||||||
|
char * destdir;
|
||||||
|
char * includedir;
|
||||||
|
char * prefix;
|
||||||
|
} Prefs;
|
||||||
# define PREFS_n 0x1
|
# define PREFS_n 0x1
|
||||||
# define PREFS_v 0x2
|
# define PREFS_v 0x2
|
||||||
typedef struct _Configure
|
typedef struct _Configure
|
||||||
{
|
{
|
||||||
Prefs prefs;
|
Prefs * prefs;
|
||||||
HostArch arch;
|
HostArch arch;
|
||||||
HostOS os;
|
HostOS os;
|
||||||
HostKernel kernel;
|
HostKernel kernel;
|
||||||
|
@ -24,11 +24,12 @@ int makefile(Configure * configure, Config * config, String * directory,
|
|||||||
makefile = string_new(directory);
|
makefile = string_new(directory);
|
||||||
string_append(&makefile, "/");
|
string_append(&makefile, "/");
|
||||||
string_append(&makefile, MAKEFILE);
|
string_append(&makefile, MAKEFILE);
|
||||||
if(!(configure->prefs & PREFS_n) && (fp = fopen(makefile, "w")) == NULL)
|
if(!(configure->prefs->flags & PREFS_n)
|
||||||
|
&& (fp = fopen(makefile, "w")) == NULL)
|
||||||
ret = configure_error(makefile, 1);
|
ret = configure_error(makefile, 1);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(configure->prefs & PREFS_v)
|
if(configure->prefs->flags & PREFS_v)
|
||||||
printf("%s%s%s%s%s", "Creating ", MAKEFILE, " in ",
|
printf("%s%s%s%s%s", "Creating ", MAKEFILE, " in ",
|
||||||
directory, "\n");
|
directory, "\n");
|
||||||
ret |= _makefile_write(configure, config, fp, ca, from, to);
|
ret |= _makefile_write(configure, config, fp, ca, from, to);
|
||||||
@ -52,14 +53,14 @@ static int _makefile_write(Configure * configure, Config * config, FILE * fp,
|
|||||||
configArray * ca, int from, int to)
|
configArray * ca, int from, int to)
|
||||||
{
|
{
|
||||||
if(_write_variables(configure, config, fp) != 0
|
if(_write_variables(configure, config, fp) != 0
|
||||||
|| _write_targets(&configure->prefs, config, fp) != 0
|
|| _write_targets(configure->prefs, config, fp) != 0
|
||||||
|| _write_objects(&configure->prefs, config, fp) != 0
|
|| _write_objects(configure->prefs, config, fp) != 0
|
||||||
|| _write_clean(&configure->prefs, config, fp) != 0
|
|| _write_clean(configure->prefs, config, fp) != 0
|
||||||
|| _write_distclean(&configure->prefs, config, fp) != 0
|
|| _write_distclean(configure->prefs, config, fp) != 0
|
||||||
|| _write_dist(&configure->prefs, config, fp, ca, from,
|
|| _write_dist(configure->prefs, config, fp, ca, from,
|
||||||
to) != 0
|
to) != 0
|
||||||
|| _write_install(&configure->prefs, config, fp) != 0
|
|| _write_install(configure->prefs, config, fp) != 0
|
||||||
|| _write_uninstall(&configure->prefs, config, fp) != 0)
|
|| _write_uninstall(configure->prefs, config, fp) != 0)
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -76,12 +77,12 @@ static int _write_variables(Configure * configure, Config * config, FILE * fp)
|
|||||||
String const * directory = config_get(config, "", "directory");
|
String const * directory = config_get(config, "", "directory");
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret |= _variables_package(&configure->prefs, config, fp, directory);
|
ret |= _variables_package(configure->prefs, config, fp, directory);
|
||||||
ret |= _variables_print(&configure->prefs, config, fp, "subdirs",
|
ret |= _variables_print(configure->prefs, config, fp, "subdirs",
|
||||||
"SUBDIRS");
|
"SUBDIRS");
|
||||||
ret |= _variables_targets(&configure->prefs, config, fp);
|
ret |= _variables_targets(configure->prefs, config, fp);
|
||||||
ret |= _variables_executables(configure, config, fp);
|
ret |= _variables_executables(configure, config, fp);
|
||||||
if(!(configure->prefs & PREFS_n))
|
if(!(configure->prefs->flags & PREFS_n))
|
||||||
fputc('\n', fp);
|
fputc('\n', fp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -94,17 +95,17 @@ static int _variables_package(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
|
|
||||||
if((package = config_get(config, "", "package")) == NULL)
|
if((package = config_get(config, "", "package")) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
if(*prefs & PREFS_v)
|
if(prefs->flags & PREFS_v)
|
||||||
printf("%s%s", "Package: ", package);
|
printf("%s%s", "Package: ", package);
|
||||||
if((version = config_get(config, "", "version")) == NULL)
|
if((version = config_get(config, "", "version")) == NULL)
|
||||||
{
|
{
|
||||||
if(*prefs & PREFS_v)
|
if(prefs->flags & PREFS_v)
|
||||||
fputc('\n', stdout);
|
fputc('\n', stdout);
|
||||||
fprintf(stderr, "%s%s%s", "configure: ", directory,
|
fprintf(stderr, "%s%s%s", "configure: ", directory,
|
||||||
": \"package\" needs \"version\"\n");
|
": \"package\" needs \"version\"\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(*prefs & PREFS_v)
|
if(prefs->flags & PREFS_v)
|
||||||
printf("%s%s%s", " ", version, "\n");
|
printf("%s%s%s", " ", version, "\n");
|
||||||
if(fp != NULL)
|
if(fp != NULL)
|
||||||
fprintf(fp, "%s%s%s%s%s", "PACKAGE\t= ", package,
|
fprintf(fp, "%s%s%s%s%s", "PACKAGE\t= ", package,
|
||||||
@ -119,7 +120,7 @@ static int _variables_print(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
int i;
|
int i;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
if((prints = config_get(config, "", input)) == NULL)
|
if((prints = config_get(config, "", input)) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
@ -148,7 +149,7 @@ static int _variables_targets(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
char c;
|
char c;
|
||||||
String * type;
|
String * type;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
if((prints = config_get(config, "", "targets")) == NULL)
|
if((prints = config_get(config, "", "targets")) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
@ -193,7 +194,7 @@ static int _variables_executables(Configure * configure, Config * config,
|
|||||||
int i;
|
int i;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
if(configure->prefs & PREFS_n)
|
if(configure->prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
if((targets = config_get(config, "", "targets")) != NULL)
|
if((targets = config_get(config, "", "targets")) != NULL)
|
||||||
{
|
{
|
||||||
@ -267,10 +268,20 @@ static void _variables_binary(Configure * configure, Config * config, FILE * fp,
|
|||||||
/* FIXME path given from user or autodetected */
|
/* FIXME path given from user or autodetected */
|
||||||
if(!done[TT_LIBRARY])
|
if(!done[TT_LIBRARY])
|
||||||
{
|
{
|
||||||
fprintf(fp, "%s", "PREFIX\t= /usr/local\n");
|
fprintf(fp, "%s%s\n", "PREFIX\t= ", configure->prefs->prefix);
|
||||||
fprintf(fp, "%s", "DESTDIR\t=\n");
|
fprintf(fp, "%s%s\n", "DESTDIR\t= ", configure->prefs->destdir);
|
||||||
}
|
}
|
||||||
fprintf(fp, "%s", "BINDIR\t= $(PREFIX)/bin\n");
|
if(configure->prefs->bindir[0] == '/')
|
||||||
|
fprintf(fp, "%s%s\n", "BINDIR\t= ", configure->prefs->bindir);
|
||||||
|
else
|
||||||
|
fprintf(fp, "%s%s\n", "BINDIR\t= $(PREFIX)/",
|
||||||
|
configure->prefs->bindir);
|
||||||
|
if(configure->prefs->includedir[0] == '/')
|
||||||
|
fprintf(fp, "%s%s\n", "INCLUDEDIR= ",
|
||||||
|
configure->prefs->includedir);
|
||||||
|
else
|
||||||
|
fprintf(fp, "%s%s\n", "INCLUDEDIR= $(PREFIX)/",
|
||||||
|
configure->prefs->includedir);
|
||||||
if(!done[TT_LIBRARY])
|
if(!done[TT_LIBRARY])
|
||||||
{
|
{
|
||||||
fprintf(fp, "%s", "CC\t= cc\n");
|
fprintf(fp, "%s", "CC\t= cc\n");
|
||||||
@ -288,6 +299,7 @@ static void _variables_binary(Configure * configure, Config * config, FILE * fp,
|
|||||||
fprintf(fp, "%s%s%s", "CFLAGS\t= ", p,
|
fprintf(fp, "%s%s%s", "CFLAGS\t= ", p,
|
||||||
"\n");
|
"\n");
|
||||||
}
|
}
|
||||||
|
/* FIXME remove -l dl and -l crypt on BSD, check on Solaris etc */
|
||||||
if((p = config_get(config, "", "ldflags_force"))
|
if((p = config_get(config, "", "ldflags_force"))
|
||||||
!= NULL)
|
!= NULL)
|
||||||
fprintf(fp, "%s%s%s", "LDFLAGSF= ", p, "\n");
|
fprintf(fp, "%s%s%s", "LDFLAGSF= ", p, "\n");
|
||||||
@ -363,7 +375,7 @@ static int _write_targets(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
|
|
||||||
static int _targets_all(Prefs * prefs, Config * config, FILE * fp)
|
static int _targets_all(Prefs * prefs, Config * config, FILE * fp)
|
||||||
{
|
{
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s", "\nall:");
|
fprintf(fp, "%s", "\nall:");
|
||||||
if(config_get(config, "", "subdirs") != NULL)
|
if(config_get(config, "", "subdirs") != NULL)
|
||||||
@ -378,7 +390,7 @@ static int _targets_subdirs(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
{
|
{
|
||||||
String * subdirs;
|
String * subdirs;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
||||||
fprintf(fp, "%s", "\nsubdirs:\n\t@for i in $(SUBDIRS); do"
|
fprintf(fp, "%s", "\nsubdirs:\n\t@for i in $(SUBDIRS); do"
|
||||||
@ -419,7 +431,7 @@ static int _targets_target(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
" no sources for target\n");
|
" no sources for target\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s%s%s%s", target, ": ", p, "\n");
|
fprintf(fp, "%s%s%s%s", target, ": ", p, "\n");
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
@ -447,7 +459,7 @@ static int _target_objs(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
": no sources defined for target\n");
|
": no sources defined for target\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(!(*prefs & PREFS_n))
|
if(!(prefs->flags & PREFS_n))
|
||||||
fprintf(fp, "%s%s%s", "\n", target, "_OBJS =");
|
fprintf(fp, "%s%s%s", "\n", target, "_OBJS =");
|
||||||
for(i = 0; ret == 0; i++)
|
for(i = 0; ret == 0; i++)
|
||||||
{
|
{
|
||||||
@ -462,7 +474,7 @@ static int _target_objs(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
sources+=i+1;
|
sources+=i+1;
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
if(!(*prefs & PREFS_n))
|
if(!(prefs->flags & PREFS_n))
|
||||||
fputc('\n', fp);
|
fputc('\n', fp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -485,7 +497,7 @@ static int _objs_source(Prefs * prefs, FILE * fp, String * source)
|
|||||||
{
|
{
|
||||||
case OT_ASM_SOURCE:
|
case OT_ASM_SOURCE:
|
||||||
case OT_C_SOURCE:
|
case OT_C_SOURCE:
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
break;
|
break;
|
||||||
fprintf(fp, "%s%s%s", " ", source, ".o");
|
fprintf(fp, "%s%s%s", " ", source, ".o");
|
||||||
break;
|
break;
|
||||||
@ -506,15 +518,19 @@ static int _target_binary(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
|
|
||||||
if(_target_objs(prefs, config, fp, target) != 0)
|
if(_target_objs(prefs, config, fp, target) != 0)
|
||||||
return 1;
|
return 1;
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s%s", target, "_CFLAGS = $(CFLAGSF) $(CFLAGS)");
|
fprintf(fp, "%s%s", target, "_CFLAGS = $(CFLAGSF) $(CFLAGS)");
|
||||||
if((p = config_get(config, target, "cflags")) != NULL)
|
if((p = config_get(config, target, "cflags")) != NULL)
|
||||||
fprintf(fp, "%s%s", " ", p);
|
fprintf(fp, " %s", p);
|
||||||
fputc('\n', fp);
|
fputc('\n', fp);
|
||||||
fprintf(fp, "%s%s%s%s", target, ": $(", target, "_OBJS)\n");
|
fprintf(fp, "%s%s%s%s", target, ": $(", target, "_OBJS)\n");
|
||||||
fprintf(fp, "%s%s%s%s%s", "\t$(CC) $(LDFLAGSF) $(LDFLAGS) -o ",
|
fprintf(fp, "%s", "\t$(CC) $(LDFLAGSF)");
|
||||||
target, " $(", target, "_OBJS)\n");
|
if((p = config_get(config, target, "ldflags_force")) != NULL)
|
||||||
|
fprintf(fp, " %s", p);
|
||||||
|
/* FIXME also find a way to add ldflags */
|
||||||
|
fprintf(fp, "%s%s%s%s%s", " $(LDFLAGS) -o ", target, " $(", target,
|
||||||
|
"_OBJS)\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,7 +541,7 @@ static int _target_library(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
|
|
||||||
if(_target_objs(prefs, config, fp, target) != 0)
|
if(_target_objs(prefs, config, fp, target) != 0)
|
||||||
return 1;
|
return 1;
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s%s", target, "_CFLAGS = $(CFLAGSF) $(CFLAGS)");
|
fprintf(fp, "%s%s", target, "_CFLAGS = $(CFLAGSF) $(CFLAGS)");
|
||||||
if((p = config_get(config, target, "cflags")) != NULL)
|
if((p = config_get(config, target, "cflags")) != NULL)
|
||||||
@ -612,7 +628,7 @@ static int _target_source(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
{
|
{
|
||||||
case OT_ASM_SOURCE:
|
case OT_ASM_SOURCE:
|
||||||
case OT_C_SOURCE:
|
case OT_C_SOURCE:
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
break;
|
break;
|
||||||
fprintf(fp, "%s%s%s%s%s%s", "\n", source, ".o: ",
|
fprintf(fp, "%s%s%s%s%s%s", "\n", source, ".o: ",
|
||||||
source, ".", sObjectType[ot]);
|
source, ".", sObjectType[ot]);
|
||||||
@ -661,7 +677,7 @@ static void _source_c_depends(Config * config, FILE * fp, String * source)
|
|||||||
static int _clean_targets(Config * config, FILE * fp);
|
static int _clean_targets(Config * config, FILE * fp);
|
||||||
static int _write_clean(Prefs * prefs, Config * config, FILE * fp)
|
static int _write_clean(Prefs * prefs, Config * config, FILE * fp)
|
||||||
{
|
{
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s", "\nclean:\n");
|
fprintf(fp, "%s", "\nclean:\n");
|
||||||
if(config_get(config, "", "subdirs") != NULL)
|
if(config_get(config, "", "subdirs") != NULL)
|
||||||
@ -700,7 +716,7 @@ static int _write_distclean(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
{
|
{
|
||||||
String * subdirs;
|
String * subdirs;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s", "\ndistclean:");
|
fprintf(fp, "%s", "\ndistclean:");
|
||||||
if((subdirs = config_get(config, "", "subdirs")) == NULL)
|
if((subdirs = config_get(config, "", "subdirs")) == NULL)
|
||||||
@ -725,7 +741,7 @@ static int _write_dist(Prefs * prefs, Config * config, FILE * fp,
|
|||||||
Config * p;
|
Config * p;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
if((package = config_get(config, "", "package")) == NULL
|
if((package = config_get(config, "", "package")) == NULL
|
||||||
|| (version = config_get(config, "", "version"))
|
|| (version = config_get(config, "", "version"))
|
||||||
@ -826,7 +842,7 @@ static int _write_install(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
int i;
|
int i;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s", "\ninstall: all\n");
|
fprintf(fp, "%s", "\ninstall: all\n");
|
||||||
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
||||||
@ -901,7 +917,7 @@ static int _write_uninstall(Prefs * prefs, Config * config, FILE * fp)
|
|||||||
int i;
|
int i;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
if(*prefs & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(fp, "%s", "\nuninstall:\n");
|
fprintf(fp, "%s", "\nuninstall:\n");
|
||||||
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
if((subdirs = config_get(config, "", "subdirs")) != NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user