aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerass El Hafidi <vitali64pmemail@protonmail.com>2023-02-19 10:25:04 +0100
committerFerass El Hafidi <vitali64pmemail@protonmail.com>2023-02-19 10:25:04 +0100
commit273e5a0cc35a16aaa0652da651785e72dd25d10d (patch)
treecbe83a851e8204a8e3316ee49dc71fd09a0a06de
parentc530c323814fedff5e3cb3571d299894dec78bf3 (diff)
downloadfases-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--Makefile11
-rw-r--r--box.c81
-rw-r--r--config.mk4
3 files changed, 11 insertions, 85 deletions
diff --git a/Makefile b/Makefile
index b7edaaf..a8ad6b2 100644
--- a/Makefile
+++ b/Makefile
@@ -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:
diff --git a/box.c b/box.c
index ea4bbef..d64d2ab 100644
--- a/box.c
+++ b/box.c
@@ -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 */
diff --git a/config.mk b/config.mk
index 9f31fc2..ec4901a 100644
--- a/config.mk
+++ b/config.mk
@@ -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\