Allow one to specify a second parameter to the machine line. This

allows us to specify the machine_arch as well as machine.  If
specified then a second link will be made, similar to machine, from
$MACHINE_ARCH to $S/$MACHINE_ARCH/include.

This is for ports where MACHINE != MACHINE_ARCH (pc98 today, others in
the future?).

Reviewed by: arch@, nyan@
This commit is contained in:
Warner Losh 2005-04-01 22:54:22 +00:00
parent e5bd0ae156
commit 51c1297a48
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=144509
4 changed files with 28 additions and 3 deletions

View File

@ -91,9 +91,11 @@ struct config {
* being used. It uses the name of the machine in choosing
* files and directories. Thus if the name of the machine is ``i386'',
* it will build from ``Makefile.i386'' and use ``../i386/inline''
* in the makerules, etc.
* in the makerules, etc. machinearch is the global notion of the
* MACHINE_ARCH for this MACHINE.
*/
char *machinename;
char *machinearch;
/*
* For each machine, a set of CPU's may be specified as supported.

View File

@ -138,6 +138,15 @@ Config_spec:
errx(1, "%s:%d: only one machine directive is allowed",
yyfile, yyline);
machinename = $2;
machinearch = $2;
} |
ARCH Save_id Save_id
= {
if (machinename != NULL)
errx(1, "%s:%d: only one machine directive is allowed",
yyfile, yyline);
machinename = $2;
machinearch = $3;
} |
CPU Save_id
= {

View File

@ -1,6 +1,6 @@
/*
* 6 digits of version. The most significant are branch indicators
* (eg: RELENG_2_2 = 22, -current presently = 50 etc). The least
* (eg: RELENG_2_2 = 22, -current presently = 60 etc). The least
* significant digits are incremented for each incompatible change.
*
* The numbering scheme is inspired by the sys/conf/newvers.sh RELDATE
@ -8,4 +8,4 @@
*
* $FreeBSD$
*/
#define CONFIGVERS 600001
#define CONFIGVERS 600002

View File

@ -163,6 +163,20 @@ main(int argc, char **argv)
srcdir, machinename);
(void) unlink(path("machine"));
(void) symlink(xxx, path("machine"));
if (strcmp(machinename, machinearch) != 0) {
/*
* make symbolic links in compilation directory for
* machinearch, if it is different than machinename.
*/
if (*srcdir == '\0')
(void)snprintf(xxx, sizeof(xxx), "../../../%s/include",
machinearch);
else
(void)snprintf(xxx, sizeof(xxx), "%s/%s/include",
srcdir, machinearch);
(void) unlink(path(machinearch));
(void) symlink(xxx, path(machinearch));
}
options(); /* make options .h files */
makefile(); /* build Makefile */
headers(); /* make a lot of .h files */