build system: add "release" target
find: support -size N (needed for above)
This commit is contained in:
parent
16c2c700fd
commit
5fa7148761
@ -42,6 +42,22 @@ check test: busybox
|
|||||||
bindir=$(objtree) srcdir=$(srctree)/testsuite SED="$(SED)" \
|
bindir=$(objtree) srcdir=$(srctree)/testsuite SED="$(SED)" \
|
||||||
$(SHELL) $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:1=),-v)
|
$(SHELL) $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:1=),-v)
|
||||||
|
|
||||||
|
.PHONY: release
|
||||||
|
release: distclean
|
||||||
|
cd ..; \
|
||||||
|
rm -r -f busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION); \
|
||||||
|
cp -a busybox busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) && \
|
||||||
|
find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \
|
||||||
|
-name .svn \
|
||||||
|
-print \
|
||||||
|
-exec rm -r -f {} \; && \
|
||||||
|
find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \
|
||||||
|
-name .\#* \
|
||||||
|
-print \
|
||||||
|
-exec rm -f {} \; && \
|
||||||
|
tar -czf busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION).tar.gz \
|
||||||
|
busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/;
|
||||||
|
|
||||||
.PHONY: checkhelp
|
.PHONY: checkhelp
|
||||||
checkhelp:
|
checkhelp:
|
||||||
$(Q)$(srctree)/scripts/checkhelp.awk \
|
$(Q)$(srctree)/scripts/checkhelp.awk \
|
||||||
|
@ -69,6 +69,7 @@ USE_FEATURE_FIND_NEWER( ACTS(newer, time_t newer_mtime;))
|
|||||||
USE_FEATURE_FIND_INUM( ACTS(inum, ino_t inode_num;))
|
USE_FEATURE_FIND_INUM( ACTS(inum, ino_t inode_num;))
|
||||||
USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; int *subst_count; int exec_argc;))
|
USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; int *subst_count; int exec_argc;))
|
||||||
USE_DESKTOP( ACTS(paren, action ***subexpr;))
|
USE_DESKTOP( ACTS(paren, action ***subexpr;))
|
||||||
|
USE_DESKTOP( ACTS(size, off_t size;))
|
||||||
USE_DESKTOP( ACTS(prune))
|
USE_DESKTOP( ACTS(prune))
|
||||||
|
|
||||||
static action ***actions;
|
static action ***actions;
|
||||||
@ -225,6 +226,7 @@ ACTF(paren)
|
|||||||
{
|
{
|
||||||
return exec_actions(ap->subexpr, fileName, statbuf);
|
return exec_actions(ap->subexpr, fileName, statbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* -prune: if -depth is not given, return true and do not descend
|
* -prune: if -depth is not given, return true and do not descend
|
||||||
* current dir; if -depth is given, return false with no effect.
|
* current dir; if -depth is given, return false with no effect.
|
||||||
@ -235,6 +237,11 @@ ACTF(prune)
|
|||||||
{
|
{
|
||||||
return SKIP;
|
return SKIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ACTF(size)
|
||||||
|
{
|
||||||
|
return statbuf->st_size == ap->size;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -487,6 +494,13 @@ action*** parse_params(char **argv)
|
|||||||
else if (strcmp(arg, "-prune") == 0) {
|
else if (strcmp(arg, "-prune") == 0) {
|
||||||
(void) ALLOC_ACTION(prune);
|
(void) ALLOC_ACTION(prune);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(arg, "-size") == 0) {
|
||||||
|
action_size *ap;
|
||||||
|
if (!*++argv)
|
||||||
|
bb_error_msg_and_die(bb_msg_requires_arg, arg);
|
||||||
|
ap = ALLOC_ACTION(size);
|
||||||
|
ap->size = XATOOFF(arg1);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
bb_show_usage();
|
bb_show_usage();
|
||||||
|
@ -85,7 +85,7 @@
|
|||||||
/* CONFIG_LFS is on */
|
/* CONFIG_LFS is on */
|
||||||
# if ULONG_MAX > 0xffffffff
|
# if ULONG_MAX > 0xffffffff
|
||||||
/* "long" is long enough on this system */
|
/* "long" is long enough on this system */
|
||||||
# define XSTRTOOFF xstrtoul
|
# define XATOOFF(a) xatoul_range(a, 0, LONG_MAX)
|
||||||
/* usage: sz = BB_STRTOOFF(s, NULL, 10); if (errno || sz < 0) die(); */
|
/* usage: sz = BB_STRTOOFF(s, NULL, 10); if (errno || sz < 0) die(); */
|
||||||
# define BB_STRTOOFF bb_strtoul
|
# define BB_STRTOOFF bb_strtoul
|
||||||
# define STRTOOFF strtoul
|
# define STRTOOFF strtoul
|
||||||
@ -93,22 +93,23 @@
|
|||||||
# define OFF_FMT "l"
|
# define OFF_FMT "l"
|
||||||
# else
|
# else
|
||||||
/* "long" is too short, need "long long" */
|
/* "long" is too short, need "long long" */
|
||||||
# define XSTRTOOFF xstrtoull
|
# define XATOOFF(a) xatoull_range(a, 0, LLONG_MAX)
|
||||||
# define BB_STRTOOFF bb_strtoull
|
# define BB_STRTOOFF bb_strtoull
|
||||||
# define STRTOOFF strtoull
|
# define STRTOOFF strtoull
|
||||||
# define OFF_FMT "ll"
|
# define OFF_FMT "ll"
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# if 0 /* #if UINT_MAX == 0xffffffff */
|
/* CONFIG_LFS is off */
|
||||||
/* Doesn't work. off_t is a long. gcc will throw warnings on printf("%d", off_t)
|
# if UINT_MAX == 0xffffffff
|
||||||
* even if long==int on this arch. Crap... */
|
/* While sizeof(off_t) == sizeof(int), off_t is typedef'ed to long anyway.
|
||||||
# define XSTRTOOFF xstrtou
|
* gcc will throw warnings on printf("%d", off_t). Crap... */
|
||||||
# define BB_STRTOOFF bb_strtoi
|
# define XATOOFF(a) xatoi_u(a)
|
||||||
|
# define BB_STRTOOFF bb_strtou
|
||||||
# define STRTOOFF strtol
|
# define STRTOOFF strtol
|
||||||
# define OFF_FMT ""
|
# define OFF_FMT "l"
|
||||||
# else
|
# else
|
||||||
# define XSTRTOOFF xstrtoul
|
# define XATOOFF(a) xatoul_range(a, 0, LONG_MAX)
|
||||||
# define BB_STRTOOFF bb_strtol
|
# define BB_STRTOOFF bb_strtoul
|
||||||
# define STRTOOFF strtol
|
# define STRTOOFF strtol
|
||||||
# define OFF_FMT "l"
|
# define OFF_FMT "l"
|
||||||
# endif
|
# endif
|
||||||
|
@ -866,24 +866,33 @@ USE_FEATURE_DATE_ISOFMT( \
|
|||||||
"\nEXPRESSION may consist of:\n" \
|
"\nEXPRESSION may consist of:\n" \
|
||||||
" -follow Dereference symbolic links\n" \
|
" -follow Dereference symbolic links\n" \
|
||||||
" -name PATTERN File name (leading directories removed) matches PATTERN\n" \
|
" -name PATTERN File name (leading directories removed) matches PATTERN\n" \
|
||||||
" -print Print (default and assumed)\n" \
|
" -print Print (default and assumed)" \
|
||||||
USE_FEATURE_FIND_PRINT0( \
|
USE_FEATURE_FIND_PRINT0( \
|
||||||
" -print0 Delimit output with null characters rather than\n newlines" \
|
"\n -print0 Delimit output with null characters rather than" \
|
||||||
|
"\n newlines" \
|
||||||
) USE_FEATURE_FIND_TYPE( \
|
) USE_FEATURE_FIND_TYPE( \
|
||||||
"\n -type X Filetype matches X (where X is one of: f,d,l,b,c,...)" \
|
"\n -type X Filetype matches X (where X is one of: f,d,l,b,c,...)" \
|
||||||
) USE_FEATURE_FIND_PERM( \
|
) USE_FEATURE_FIND_PERM( \
|
||||||
"\n -perm PERMS Permissions match any of (+NNN); all of (-NNN);\n or exactly (NNN)" \
|
"\n -perm PERMS Permissions match any of (+NNN); all of (-NNN);" \
|
||||||
|
"\n or exactly (NNN)" \
|
||||||
) USE_FEATURE_FIND_MTIME( \
|
) USE_FEATURE_FIND_MTIME( \
|
||||||
"\n -mtime DAYS Modified time is greater than (+N); less than (-N);\n or exactly (N) days" \
|
"\n -mtime DAYS Modified time is greater than (+N); less than (-N);" \
|
||||||
|
"\n or exactly (N) days" \
|
||||||
) USE_FEATURE_FIND_MMIN( \
|
) USE_FEATURE_FIND_MMIN( \
|
||||||
"\n -mmin MINS Modified time is greater than (+N); less than (-N);\n or exactly (N) minutes" \
|
"\n -mmin MINS Modified time is greater than (+N); less than (-N);" \
|
||||||
|
"\n or exactly (N) minutes" \
|
||||||
) USE_FEATURE_FIND_NEWER( \
|
) USE_FEATURE_FIND_NEWER( \
|
||||||
"\n -newer FILE Modified time is more recent than FILE's" \
|
"\n -newer FILE Modified time is more recent than FILE's" \
|
||||||
) USE_FEATURE_FIND_INUM( \
|
) USE_FEATURE_FIND_INUM( \
|
||||||
"\n -inum N File has inode number N" \
|
"\n -inum N File has inode number N" \
|
||||||
) USE_FEATURE_FIND_EXEC( \
|
) USE_FEATURE_FIND_EXEC( \
|
||||||
"\n -exec CMD Execute CMD with all instances of {} replaced by the" \
|
"\n -exec CMD Execute CMD with all instances of {} replaced by the" \
|
||||||
"\n files matching EXPRESSION")
|
"\n files matching EXPRESSION" \
|
||||||
|
) USE_DESKTOP( \
|
||||||
|
"\n -size N File size is N" \
|
||||||
|
"\n -prune Stop traversing current subtree" \
|
||||||
|
"\n (expr) Group" \
|
||||||
|
)
|
||||||
|
|
||||||
#define find_example_usage \
|
#define find_example_usage \
|
||||||
"$ find / -name passwd\n" \
|
"$ find / -name passwd\n" \
|
||||||
|
Loading…
Reference in New Issue
Block a user