#!/usr/bin/env python3
import sys, os, subprocess

def compile_c_files():
    src_dir = os.path.dirname(os.path.abspath(__file__))
    c_files = [f for f in os.listdir(src_dir) if f.endswith('.c')]
    if not c_files:
        print("No .c files found.")
        return

    for c_file in c_files:
        base = os.path.splitext(c_file)[0]
        c_path = os.path.join(src_dir, c_file)

        # Compile for Windows (assumes MinGW is installed and in PATH)
        win_output = os.path.join(src_dir, base + '.exe')
        win_cmd = ['x86_64-w64-mingw32-gcc', c_path, '-o', win_output]
        try:
            subprocess.check_call(win_cmd)
            print(f"Compiled {c_file} to {win_output} (Windows)")
        except Exception as e:
            print(f"Windows compile failed for {c_file}: {e}")

        # Compile for Linux (assumes gcc is installed and in PATH)
        linux_output = os.path.join(src_dir, base)
        linux_cmd = ['gcc', c_path, '-o', linux_output]
        try:
            subprocess.check_call(linux_cmd)
            print(f"Compiled {c_file} to {linux_output} (Linux)")
        except Exception as e:
            print(f"Linux compile failed for {c_file}: {e}")

if __name__ == '__main__':
    compile_c_files()