aboutsummaryrefslogtreecommitdiff
path: root/scripts/make.sh
AgeCommit message (Collapse)Author
2016-05-20Make build dependencies more granular. This should fix the problem whereRob Landley
"make top; make ps" produces a ps that can't do -A because generated/obj/ps.o didn't get rebuilt.
2016-03-23Redo build stuff in response to Andy Chu's suggestions.Rob Landley
Toybox single binaries are now made directly with the new name instead of stomping toybox and getting renamed. Unstripped files now live in generated/unstripped. Target to run all tests is now "make tests" to avoid conflict with "make test". .singleconfig now has .PHONY: entries for all test_$NAME targets. Default install location changed to /usr/toybox, code.html now says how to change it (set $PREFIX). scripts/install.sh --uninstall works now. (And you get to keep the pieces!)
2016-03-01Use shell builtins instead of calling wc/awk/sed. (Fewer forks in build loop.)Rob Landley
Based on suggestions from Nicholas Boichat.
2016-02-26Switch to $! for make.sh process enumeration.Rob Landley
2016-02-07Add "make ls" and friends targets, with "make working" and "make pending" lists.Rob Landley
2016-02-07Add a warning when building commands out of pending.Rob Landley
2016-01-10Make cursor left/right change sort type in iotop.Rob Landley
2015-12-27Add scan_key_getsize() doing the ANSI probe, switch scan_key() to TAGGED_ARRAY,Rob Landley
and add test_scankey.
2015-12-13Start of TAGGED_ARRAY() infrastructure.Rob Landley
This lets you have struct arrays with a string as the first member, ala: struct {char *name; int x, y} blah thingy[] = TAGGED_ARRAY(BLAH, {"one", 1, 2}, {"two", 3, 4}, {"three", 5, 6} ); And it produces #defines for the array index of each, ala: #define BLAH_one 0 #define BLAH_two 1 #define BLAH_three 2 So you can use thingy[BLAH_two].x and still reorder the elements at will. Note: if you screw up the array initializers, temporarily replace TAGGED_ARRAY(BLAH, with { and the ); with }; and the compiler will give you better error messages. (With the macro the compiler reports errors on the TAGGED_ARRAY line, not where the comma is missing in its contents.) Currently the TAGGED_ARRAY( and ); must be on their own lines, and the { and start of each attached string must be on the same line.
2015-11-02Don't pass target $CFLAGS to host builds (telling x86 compiler to be big-endianRob Landley
seldom ends well). Instead add -DBUILD_FOR_HOST to $HOSTCC and wrap #ifdefs around problematic (smack) includes from toys.h.
2015-10-29Tweak permissions of toybox binary.Rob Landley
2015-10-14make.sh: missing cflags for config2helpAlejandro Joya
config2help might require extra parameters to be passed to the compiler. For example it might need an additional header path.
2015-09-23The -o /dev/null trick in probing isn't compatible with elf2flt, so use ↵Rob Landley
tempfile.
2015-08-30Build updates: make change should use top level .config for global settings,Rob Landley
add NOSTRIP variable to force skipping strip, and save intermediate flag data in generated/flags.raw and have mkflags.c error message point to that.
2015-05-09Probe for -Wno-string-plus-int.Rob Landley
LLVM has its own nuts warnings about things that aren't wrong, but disabling them with the relevant -Wno-* warning disabling command line option drives gcc nuts because it's a command line option it doesn't recognize. (gcc 4.2.1 dies with an error. gcc 4.6 warns about it _only_ if it's warning about something else. (PICK ONE, either you warn about this or you don't, distract people from actual problems with noise about something clearly unrelated to what just changed is extra-stupid.) So just probe for it, and add the flag only if it doesn't complain about it while we're producing an unrelated warning.
2015-04-17Link against libattr and libsmack.Xavier Roche
2015-04-17Make toybox --version use the "git describe" info if it's available.Rob Landley
2015-03-06Yank $STRIP from config (and STRIP=no weirdness) and just allow strip to fail.Rob Landley
2015-02-28Add LDFLAGS and STRIP=no support.Rob Landley
2015-02-07Build standalone commands where "depends on" config entries need to be ↵Rob Landley
switched on.
2014-12-31Redo option parsing infrastructure so #define FORCE_FLAGS can unzero flag ↵Rob Landley
macros for a disabled command (needed when multiple commands share infrastructure with a common set of flags). This means the flag space is no longer packed, but leaves gaps where the zeroes go. (Actual flag bit positions are the same for all configs.) Since the option parsing needs to know where the holes are, the OPTSTR values are now generated as part of flags.h with ascii 1 values for the disabled values. (So generated/oldflags.h went away.) This also means that the option string argument for OLDTOY() went away, it now uses the same arguments as the NEWTOY() it references.
2014-12-23those of us who need to check in generated files find that 'tr' andElliott Hughes
'traceroute' keep swapping places. self-inflicted, yes, but not much i can do about it :-(
2014-12-13Oops. xfork() moved to portability.c and the config2help.c build wasn't ↵Rob Landley
including that. (Worked until I did a "make clean".)
2014-12-11here's a patch that should let us replace toolbox's chcon.Elliott Hughes
(it also adds a feature, -R, because toybox makes that so easy.) you'll probably want fancier configuration here because although the --as-needed works okay, a typical Ubuntu box will have the .so but not the .h files. i did consider adding a toys/selinux/ directory, but given that existing tools like ls and id will want -Z SELinux options, i wasn't sure whether you'd think it was worth segregating the SELinux-only toys. note that this won't help the tizen smack users (and patch for smack won't help SELinux users). so you might want to think about where you'd like us to be aiming: #if USE_SELINUX/USE_SMACK in all the relevant places, or a toys/selinux and a toys/smack (though we'd still need #if in at least ls and id), or a lib/security.c that concentrates all the differences into one file?
2014-11-28Improve error reporting in parallel build. (On error, wait for all children ↵Rob Landley
to finish before exiting.)
2014-11-28Add "make change" target to build the big toybox binary as a bunch of little ↵Rob Landley
ones (in the "change" subdirectory), and tweak scripts/make.sh to avoid redundant work when rebuilding.
2014-09-20Delete generated/README.txt (the contents are in code.html now) so clean can ↵Rob Landley
just remove the "generated" directory entirely.
2014-09-20Remove debug echo checked in by mistake.Rob Landley
2014-09-20Give library probe a progress indicator, and use 150% of detected CPUs to ↵Rob Landley
try to keep large SMP machines busy (each compiler invocation is short so they exit almost as fast as we launch them).
2014-09-11Create a generated/build.sh with a single compiler command line to rebuild ↵Rob Landley
the toybox_unstripped binary using the existing generated/*.h files. This way we can snapshot the generated/*.{h,sh} from a defconfig build into a "shipped" directory or something, and then people can maybe build on crazy crippled environments like pcbsd that haven't got gmake and put bash under /usr/local so none of the #!/scripts can find it. This solves at least part of the "toybox can build with itself but you need to build toybox first to have the tools to run the build scripts" problem. Next up: work out the minimal config to provide the build tools needed to run an actual build. (This should, eventually, include a "make" command if freebsd's kernel is going to refuse to build with netbsd's "make" and we don't just write off the whole thing as crazy. But it probably shouldn't include commands that #include <linux/*.h> if we are trying to make that work.)
2014-09-11Oops, unbreak make.sh.Rob Landley
Clearing out old .o files needs -r now that generated/obj has its own subdirectory. (Works if you make clean between, but shouldn't need it.)
2014-09-09Make tweaks: collate generated/*.o files into their own subdirectory, add ↵Rob Landley
PIPEFAIL for better error reporting, and simpler regex to select toys/*/*.c list based on NEWTOY/OLDTOY macros.
2014-09-04Don't hang for $CPUS=1.Rob Landley
echo prints a newline if it has nothing to print, so wc -l always returns at least 1. Fix: echo -n
2014-08-31More parallel build tweaks.Rob Landley
echo "$PENDING" needs the quotes to avoid gluing the lines together, which prevents wc -l or head -n +2 from working right.
2014-08-30Old compilers complain about linker options passed with -c, so split out ↵Rob Landley
$LDOPTIMIZE.
2014-08-30Another fix from Johan Bergstr?m, using the gnu/dammit version of sort on ↵Rob Landley
the host can be screwed up by more than one environment variable.
2014-08-24Fix parallel make not always catching errors before link time.Rob Landley
jobs -p removes finished jobs from the list after reporting them once, so we need to record the output and remove duplicates ourselves.
2014-08-09Parallelize the build. (set CPUS=1 to force single processor build, or ↵Rob Landley
another number to override processor count autodetect.)
2014-06-09host needs -lresolvRob Landley
2014-05-24Pass the same $CFLAGS to the library probe as the final build, to work with ↵Rob Landley
broken build environments that provide different libraries for --static and dynamic builds.
2014-02-28Fix header file generation to not be confused by empty (but non-NULL) option ↵Rob Landley
string. You shouldn't use "" as an option string because a NULL allows toy_init() to avoid calling the option parsing logic entirely, which lets it drop out when nothing's using it (ala scripts/single.sh builds). That said, init.c is currently using a "" option string and a USE_ macro taking advantage of string concatenation may require a "" option config, so...
2014-02-23CLEANUP transitions require all the generated/flags.h stanzas always be ↵Rob Landley
present (even for commands disabled in the config) to avoid undefined symbol errors referencing FLAG_ macros.
2014-02-04Use right config for single builds.Rob Landley
2014-01-03Replace python help converter with C implementation.Rob Landley
2013-12-28Cosmetic tweak.Rob Landley
2013-12-19Older python spit --version to stdout, 2.7 does it to stderr. Of course.Rob Landley
2013-12-19Regression test against Ancient Build Environment (Ubuntu 8.04), fixup bit-rot.Rob Landley
2013-10-23Don't use $CC without $CROSS_COMPILE because $HOSTCC could be something else ↵Rob Landley
entirely.
2013-10-03Switch flag generation from shell to C.Rob Landley
This should actually generate FLAG_longopt 0 #defines for disabled bare longopts (ala ls without --color). Put temporary executables under "generated" (including instlist for install).
2013-09-22Fix generated/oldtoys.h to contain option strings with USE() macros in them.Rob Landley