Static template generator for C
git clone git://soophie.de/ductape
11
#define DUC_BUILDPATH "DUC_BUILDPATH"12
#define DUC_HEADERPATH "DUC_HEADERPATH"13
#define DUC_LIBPATH "DUC_LIBPATH"15
#define DUC_SYM_SIG_HASH "__DUC_SIG_HASH_"16
#define DUC_SYM_UID "__DUC_UID_"
24
#define DUC_TMP_C_PATH ".duc_tmp.c"25
#define DUC_TMP_SO_PATH ".duc_tmp.so"26
#define DUC_CMD_COMPILE "cc -shared -fPIC -o %s %s"27
#define DUC_CMD_COMPILE "cc -shared -fPIC -o %s %s %s"29
// @enum duc_err_t30
typedef enum {
294
case DUC_MODE_MODULE: {295
err = duc_file_write(str_get(&template), str_len(&template), DUC_TMP_C_PATH);296
str_free(&template);297
char *lib_path = getenv(DUC_LIBPATH);298
if (lib_path == NULL) {299
lib_path = "";300
}301
char cmd[500];297
snprintf(cmd, sizeof(cmd), DUC_CMD_COMPILE, DUC_TMP_SO_PATH, DUC_TMP_C_PATH);302
snprintf(cmd, sizeof(cmd), DUC_CMD_COMPILE, DUC_TMP_SO_PATH, lib_path, DUC_TMP_C_PATH);303
int rc = system(cmd);304
remove(DUC_TMP_C_PATH);305
if (rc != 0) {