Add support for (un)installing commands
This commit is contained in:
parent
9c30e35d1b
commit
908c9a715a
@ -2253,6 +2253,7 @@ static int _install_targets(Makefile * makefile)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void _install_target_binary(Makefile * makefile, String const * target);
|
static void _install_target_binary(Makefile * makefile, String const * target);
|
||||||
|
static void _install_target_command(Makefile * makefile, String const * target);
|
||||||
static int _install_target_library(Makefile * makefile, String const * target);
|
static int _install_target_library(Makefile * makefile, String const * target);
|
||||||
static void _install_target_libtool(Makefile * makefile, String const * target);
|
static void _install_target_libtool(Makefile * makefile, String const * target);
|
||||||
static void _install_target_object(Makefile * makefile, String const * target);
|
static void _install_target_object(Makefile * makefile, String const * target);
|
||||||
@ -2272,6 +2273,7 @@ static int _install_target(Makefile * makefile, String const * target)
|
|||||||
_install_target_binary(makefile, target);
|
_install_target_binary(makefile, target);
|
||||||
break;
|
break;
|
||||||
case TT_COMMAND:
|
case TT_COMMAND:
|
||||||
|
_install_target_command(makefile, target);
|
||||||
break;
|
break;
|
||||||
case TT_LIBRARY:
|
case TT_LIBRARY:
|
||||||
ret = _install_target_library(makefile, target);
|
ret = _install_target_library(makefile, target);
|
||||||
@ -2294,6 +2296,29 @@ static int _install_target(Makefile * makefile, String const * target)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _install_target_command(Makefile * makefile, String const * target)
|
||||||
|
{
|
||||||
|
String const * path;
|
||||||
|
int phony;
|
||||||
|
String const * mode;
|
||||||
|
mode_t m = 0644;
|
||||||
|
String * p;
|
||||||
|
|
||||||
|
if((path = _makefile_get_config(makefile, target, "install")) == NULL)
|
||||||
|
return;
|
||||||
|
phony = _makefile_is_phony(makefile, target);
|
||||||
|
if((mode = _makefile_get_config(makefile, target, "mode")) == NULL
|
||||||
|
/* XXX these tests are not sufficient */
|
||||||
|
|| mode[0] == '\0'
|
||||||
|
|| (m = strtol(mode, &p, 8)) == 0
|
||||||
|
|| *p != '\0')
|
||||||
|
mode = "0644";
|
||||||
|
_makefile_mkdir(makefile, path);
|
||||||
|
_makefile_print(makefile, "%s%s%s%s%s%s/%s\n",
|
||||||
|
"\t$(INSTALL) -m ", mode, phony ? " " : " $(OBJDIR)",
|
||||||
|
target, " $(DESTDIR)", path, target);
|
||||||
|
}
|
||||||
|
|
||||||
static void _install_target_binary(Makefile * makefile, String const * target)
|
static void _install_target_binary(Makefile * makefile, String const * target)
|
||||||
{
|
{
|
||||||
String const * path;
|
String const * path;
|
||||||
@ -2744,6 +2769,8 @@ static int _uninstall_target(Makefile * makefile,
|
|||||||
path, target, "$(EXEEXT)");
|
path, target, "$(EXEEXT)");
|
||||||
break;
|
break;
|
||||||
case TT_COMMAND:
|
case TT_COMMAND:
|
||||||
|
_makefile_print(makefile, "\t%s%s/%s\n", rm_destdir,
|
||||||
|
path, target);
|
||||||
break;
|
break;
|
||||||
case TT_LIBRARY:
|
case TT_LIBRARY:
|
||||||
if(_uninstall_target_library(makefile, target,
|
if(_uninstall_target_library(makefile, target,
|
||||||
|
Loading…
Reference in New Issue
Block a user