diff options
author | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-02-19 10:25:04 +0100 |
---|---|---|
committer | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-02-19 10:25:04 +0100 |
commit | 273e5a0cc35a16aaa0652da651785e72dd25d10d (patch) | |
tree | cbe83a851e8204a8e3316ee49dc71fd09a0a06de | |
parent | c530c323814fedff5e3cb3571d299894dec78bf3 (diff) | |
download | fases-273e5a0cc35a16aaa0652da651785e72dd25d10d.tar.gz fases-273e5a0cc35a16aaa0652da651785e72dd25d10d.zip |
box/Makefile: Be able to not include core utilities
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | box.c | 81 | ||||
-rw-r--r-- | config.mk | 4 |
3 files changed, 11 insertions, 85 deletions
@@ -16,25 +16,26 @@ config: genbox: cat "box-templates/box_1-23.c" > box.c - for u in ${CORE}; do echo "int $${u%.c}_main(int, char**);" | sed "s/\[_/test_/g"; done>> box.c + test ${INCLUDE_CORE} == n || for u in ${CORE}; do echo "int $${u%.c}_main(int, char**);" | sed "s/\[_/test_/g"; done>> box.c test ${INCLUDE_EXTRA} == n || for u in ${EXTRA}; do echo "int $${u%.c}_main(int, char**);"; done>> box.c cat "box-templates/box_45-49.c" >> box.c - for u in ${CORE}; do echo " else if(!strcmp(basename(argv[0]), \"$${u%.c}\")) return $${u%.c}_main(argc, argv);" | sed "s/\[_/test_/g"; done >> box.c + test ${INCLUDE_CORE} == n || for u in ${CORE}; do echo " else if(!strcmp(basename(argv[0]), \"$${u%.c}\")) return $${u%.c}_main(argc, argv);" | sed "s/\[_/test_/g"; done >> box.c test ${INCLUDE_EXTRA} == n || for u in ${EXTRA}; do echo " else if(!strcmp(argv[0], \"$${u%.c}\")) return $${u%.c}_main(argc, argv);"; done >> box.c cat "box-templates/box_70-73.c" >> box.c - for u in ${CORE}; do echo " printf(\"$${u%.c} \");"; done >> box.c + test ${INCLUDE_CORE} == n || for u in ${CORE}; do echo " printf(\"$${u%.c} \");"; done >> box.c test ${INCLUDE_EXTRA} == n || for u in ${EXTRA}; do echo " printf(\"$${u%.c} \");"; done >> box.c + test ${INCLUDE_CORE} == n && test ${INCLUDE_EXTRA} == n && echo " printf(\"¯\\\\_(ツ)_/¯ No commands found.\");" >> box.c cat "box-templates/box_94-96.c" >> box.c echo "/* Generated on $$(date) */" >> box.c prepbox: mkdir -p box_tmp - for f in ${CORE}; do (sed "s/^int main(/int $$(echo "$$f")_main(/" < "core/"$$f".c" | sed "s/\"..\/common/\"common/g" | sed "s/\[_/test_/g") > "box_tmp/"$$f"_box.c"; done + test ${INCLUDE_CORE} == n || for f in ${CORE}; do (sed "s/^int main(/int $$(echo "$$f")_main(/" < "core/"$$f".c" | sed "s/\"..\/common/\"common/g" | sed "s/\[_/test_/g") > "box_tmp/"$$f"_box.c"; done rm -f "box_tmp/[_box.c" test ${INCLUDE_EXTRA} == n || for f in ${EXTRA}; do sed "s/^int main(/int $$(echo "$$f")_main(/" < "extras/"$$f".c" | sed "s/printUsage()/$$(echo "$$f")_printUsage()/g" > "box_tmp/"$$f"_box.c"; done box: box.o - $(CC) $(CFLAGS) box_tmp/*.c common/common.c box.o -o box + test ${INCLUDE_CORE} = n && test ${INCLUDE_EXTRA} = n && $(CC) $(CFLAGS) common/common.c box.o -o box || $(CC) $(CFLAGS) box_tmp/*.c common/common.c box.o -o box rm -f version.h clean: @@ -6,32 +6,6 @@ #include <libgen.h> #include <stdio.h> /* END */ -int basename_main(int, char**); -int test_main(int, char**); -int cat_main(int, char**); -int chmod_main(int, char**); -int chown_main(int, char**); -int date_main(int, char**); -int dirname_main(int, char**); -int echo_main(int, char**); -int ed_main(int, char**); -int false_main(int, char**); -int head_main(int, char**); -int link_main(int, char**); -int ln_main(int, char**); -int ls_main(int, char**); -int mkdir_main(int, char**); -int more_main(int, char**); -int mv_main(int, char**); -int printf_main(int, char**); -int rm_main(int, char**); -int sleep_main(int, char**); -int tail_main(int, char**); -int test_main(int, char**); -int true_main(int, char**); -int uname_main(int, char**); -int unlink_main(int, char**); -int wc_main(int, char**); /* START */ int main(int argc, char *argv[]) { if (!strcmp(basename(argv[0]),"box") && argc > 1) { @@ -39,63 +13,12 @@ int main(int argc, char *argv[]) { argv++; } if(0); /* END */ - else if(!strcmp(basename(argv[0]), "basename")) return basename_main(argc, argv); - else if(!strcmp(basename(argv[0]), "[")) return test_main(argc, argv); - else if(!strcmp(basename(argv[0]), "cat")) return cat_main(argc, argv); - else if(!strcmp(basename(argv[0]), "chmod")) return chmod_main(argc, argv); - else if(!strcmp(basename(argv[0]), "chown")) return chown_main(argc, argv); - else if(!strcmp(basename(argv[0]), "date")) return date_main(argc, argv); - else if(!strcmp(basename(argv[0]), "dirname")) return dirname_main(argc, argv); - else if(!strcmp(basename(argv[0]), "echo")) return echo_main(argc, argv); - else if(!strcmp(basename(argv[0]), "ed")) return ed_main(argc, argv); - else if(!strcmp(basename(argv[0]), "false")) return false_main(argc, argv); - else if(!strcmp(basename(argv[0]), "head")) return head_main(argc, argv); - else if(!strcmp(basename(argv[0]), "link")) return link_main(argc, argv); - else if(!strcmp(basename(argv[0]), "ln")) return ln_main(argc, argv); - else if(!strcmp(basename(argv[0]), "ls")) return ls_main(argc, argv); - else if(!strcmp(basename(argv[0]), "mkdir")) return mkdir_main(argc, argv); - else if(!strcmp(basename(argv[0]), "more")) return more_main(argc, argv); - else if(!strcmp(basename(argv[0]), "mv")) return mv_main(argc, argv); - else if(!strcmp(basename(argv[0]), "printf")) return printf_main(argc, argv); - else if(!strcmp(basename(argv[0]), "rm")) return rm_main(argc, argv); - else if(!strcmp(basename(argv[0]), "sleep")) return sleep_main(argc, argv); - else if(!strcmp(basename(argv[0]), "tail")) return tail_main(argc, argv); - else if(!strcmp(basename(argv[0]), "test")) return test_main(argc, argv); - else if(!strcmp(basename(argv[0]), "true")) return true_main(argc, argv); - else if(!strcmp(basename(argv[0]), "uname")) return uname_main(argc, argv); - else if(!strcmp(basename(argv[0]), "unlink")) return unlink_main(argc, argv); - else if(!strcmp(basename(argv[0]), "wc")) return wc_main(argc, argv); /* START */ else if (!strcmp(basename(argv[0]), "box") && argc == 1) { printf("fases box.\n"); printf("Usage: box command [args] ...\n"); /* END */ - printf("basename "); - printf("[ "); - printf("cat "); - printf("chmod "); - printf("chown "); - printf("date "); - printf("dirname "); - printf("echo "); - printf("ed "); - printf("false "); - printf("head "); - printf("link "); - printf("ln "); - printf("ls "); - printf("mkdir "); - printf("more "); - printf("mv "); - printf("printf "); - printf("rm "); - printf("sleep "); - printf("tail "); - printf("test "); - printf("true "); - printf("uname "); - printf("unlink "); - printf("wc "); + printf("¯\\_(ツ)_/¯ No commands found."); /* START */ printf("\n"); } @@ -105,4 +28,4 @@ int main(int argc, char *argv[]) { return 0; } /* END */ -/* Generated on Sun 19 Feb 10:09:29 CET 2023 */ +/* Generated on Sun 19 Feb 10:22:55 CET 2023 */ @@ -37,7 +37,9 @@ CORE=\ wc # vi\ doesn't work for now # -INCLUDE_EXTRA=n # Should extra utils be included inside fasesiab? +# Include core/extra utilities in fases-box +INCLUDE_EXTRA=n +INCLUDE_CORE=y # Extra utilities EXTRA=\ errno\ |