Skip to main content

A lightweight cross-platform C/C++ build system written in Python.

Project description

make0

make0 是一個輕量級、跨平台的 C/C++ 專案建置工具。

安裝

pip install make0

使用方法

在專案目錄下建立

檔案: make0file

app = target("ssl_app")
app.set_kind("binary")
app.add_files("main.c", "math_utils.c")
app.add_packages("openssl")

檔案: main.c

#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>  // 由 pmake 的 add_packages("openssl") 處理路徑
#include "math_utils.h"

int main() {
    // 1. 測試自定義函式庫
    int num = 5;
    printf("--- pmake 跨平台測試 ---\n");
    printf("數字 %d 的平方是: %d\n", num, square(num));

    // 2. 測試 OpenSSL SHA256
    const char *data = "Hello Gemini & pmake!";
    unsigned char hash[SHA256_DIGEST_LENGTH];

    // 呼叫 OpenSSL 函式
    SHA256((unsigned char*)data, strlen(data), hash);

    printf("字串: \"%s\"\n", data);
    printf("SHA256 結果: ");
    for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) {
        printf("%02x", hash[i]);
    }
    printf("\n------------------------\n");

    return 0;
}

檔案: math_util.h

#ifndef MATH_UTILS_H
#define MATH_UTILS_H

int square(int a);

#endif

檔案: math_util.c

#include "math_utils.h"

int square(int a) {
    return a * a;
}

然後執行建置:

make0 build

這樣就會產生

(venv) cccuser@cccimacdeiMac hello_make0 % ls -all
total 104
drwxr-xr-x@ 8 cccuser  staff    256 Mar 15 17:32 .
drwxr-xr-x@ 3 cccuser  staff     96 Mar 15 17:32 ..
drwxr-xr-x@ 4 cccuser  staff    128 Mar 15 17:32 .pmake_cache
-rw-r--r--@ 1 cccuser  staff    752 Mar 15 20:14 main.c
-rw-r--r--@ 1 cccuser  staff     64 Mar 15 16:14 math_utils.c
-rw-r--r--@ 1 cccuser  staff     69 Mar 15 16:01 math_utils.h
-rw-r--r--@ 1 cccuser  staff    195 Mar 15 16:28 make0file
-rwxr-xr-x@ 1 cccuser  staff  33688 Mar 15 17:32 ssl_app

最後你就可以執行

(venv) cccuser@cccimacdeiMac hello_make0 % ./ssl_app
--- pmake 跨平台測試 ---
數字 5 的平方是: 25
字串: "Hello Gemini & pmake!"
SHA256 結果: a44b648ff26615cb44c163c246ed18fd89cd4991f025bc13cff3d876bbd32b7d
------------------------

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

make0-0.1.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

make0-0.1.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file make0-0.1.0.tar.gz.

File metadata

  • Download URL: make0-0.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for make0-0.1.0.tar.gz
Algorithm Hash digest
SHA256 86885821315f02492bac008716c5907005722faac481a94b32f1de677229d14b
MD5 fc6e745552db3f7c8ab39e4d7b578042
BLAKE2b-256 82fcd470471fa3cc21df3827fe1daff08c946e4a3e5937638b5bdbe5179690c0

See more details on using hashes here.

File details

Details for the file make0-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: make0-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for make0-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e16bf4fa978b15f5ffba9a5af928d5ec5192e3181690cb3bc96cb87af99e84b
MD5 1fd951a13428baa40a4233d124fa40db
BLAKE2b-256 6c6c8703b7aa8601672d9700f80cad554d4ea165b24ec9a00a7469985b36f943

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page