aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-24 00:49:48 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-24 00:49:48 +0330
commit547074407aa154cc82ecff647603254f2eaf46f6 (patch)
tree94900126df946fa89b741a699db9cbe9ca743fe3 /Makefile
parent3c9aea642e3b2f4083705f1cd42fa911d35ee696 (diff)
add a good example for calling c functions
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile9
1 files changed, 6 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index a80a497..c7b3eec 100644
--- a/Makefile
+++ b/Makefile
@@ -20,9 +20,9 @@ INC_DIRS := $(SRC_DIR)
INC_FLAGS := $(addprefix -I,$(INC_DIRS))
# OP_FLAG := -Ofast
-# OP_FLAG := -O3
+OP_FLAG := -O3
# OP_FLAG := -Oz
-OP_FLAG := -g
+# OP_FLAG := -g
# CFLAGS := $(INC_FLAGS) -Wall -Wextra -std=gnu23 -DPRINT_STATISTICS -DPRINT_COMPILE_TREE $(OP_FLAG)
CFLAGS := $(INC_FLAGS) -Wall -Wextra -std=gnu23 -lffi -DPRINT_STATISTICS $(OP_FLAG)
@@ -73,8 +73,11 @@ test/big.felan: Makefile
echo "main :: () -> void {" > $@
for((n = 0;n < 1000000;n++)); do echo " print('1');" >> $@; done
echo "};" >> $@
+ echo "libc :: @c_library(\"/lib/libc.so.6\");" >> $@
+ echo "putchar :: @c_function(libc,\"putchar\",(i32)->i32);" >> $@
echo "print :: (value:u8) -> void {" >> $@
- echo " @putc(value);" >> $@
+ echo " putchar(@cast(value,i32));" >> $@
+ # echo " @putc(value);" >> $@
echo "};" >> $@
# $@ = left hand of :