little better gestions of sully with makefile, but need complete transformation

This commit is contained in:
asus
2024-01-26 12:01:22 +01:00
parent ac37456160
commit 78959d77cd
3 changed files with 10 additions and 2 deletions

View File

@@ -4,7 +4,13 @@ CLONE = Sully_4.c \
Sully_3.c \
Sully_2.c \
Sully_1.c \
Sully_0.c \
Sully_0.c
CREATE_CLONE = ./$(NAME)
RM_MORE = rm -f
RM_MORE += Sully_4 \
Sully_3 \
Sully_2 \
Sully_1 \
Sully_0
include ../MakefileCommon

View File

@@ -3,6 +3,6 @@
#include <stdio.h>
#define xstr(s) #s
#define str(s) xstr(s)
#define FT(s) int main() { char *before = "#define _GNU_SOURCE /* for asprintf */\n#include <stdlib.h> /* for free and system */\n#include <stdio.h>\n#define xstr(s) #s\n#define str(s) xstr(s)\n#define FT(s) "; char *quine = s; char *after = "\nint i = %i;\nFT(str(FT(s)))\n"; i--; char *kid_name; char *kid_name_c; char *decremented_after; char *cmd; asprintf(&kid_name, "Sully_%i", i); asprintf(&kid_name_c, "%s.c", kid_name); FILE *file = fopen(kid_name_c, "w"); asprintf(&decremented_after, after, i); fprintf(file, "%s%s%s", before, quine, decremented_after); fclose(file); asprintf(&cmd, "clang %1$s -o %2$s ; ./%2$s", kid_name_c, kid_name); printf("cmd: %s\n", cmd); if (i > 0) {system(cmd); }free(kid_name_c); free(kid_name); free(decremented_after); free(cmd); return 0; }
#define FT(s) int main() { char *before = "#define _GNU_SOURCE /* for asprintf */\n#include <stdlib.h> /* for free and system */\n#include <stdio.h>\n#define xstr(s) #s\n#define str(s) xstr(s)\n#define FT(s) "; char *quine = s; char *after = "\nint i = %i;\nFT(str(FT(s)))\n"; i--; char *kid_name; char *kid_name_c; char *decremented_after; char *cmd; asprintf(&kid_name, "Sully_%i", i); asprintf(&kid_name_c, "%s.c", kid_name); FILE *file = fopen(kid_name_c, "w"); asprintf(&decremented_after, after, i); fprintf(file, "%s%s%s", before, quine, decremented_after); fclose(file); asprintf(&cmd, "clang %1$s -o %2$s ; ./%2$s", kid_name_c, kid_name); printf("cmd: %s\n", cmd); if (i > 0) {system(cmd); } free(kid_name_c); free(kid_name); free(decremented_after); free(cmd); return 0; }
int i = 5;
FT(str(FT(s)))

View File

@@ -35,6 +35,7 @@ RESET = "\e[0m"
#SRCS -> defined in subfolder makefiles
#CLONE -> defined in subfolder makefiles
#CREATE_CLONE -> defined in subfolder makefiles
#RM_MORE -> might be defined in subfolder makefiles
LIBS =
D_SRCS = .
D_HEADERS = .
@@ -117,6 +118,7 @@ clean:
fclean: clean
rm -f $(NAME)
rm -f $(CLONE)
$(RM_MORE)
re: fclean all