# # Required version of omake # OMakeVersion(0.10.2, 0.10.2) open configure/Configure .STATIC: DETECT_FS_CASE_SENSITIVE = false DETECT_FS_CASE_SENSITIVE_CFLAGS = if $(equal $(OSTYPE), Win32) DETECT_FS_CASE_SENSITIVE = false export else ConfMsgChecking(for optimal filesystem case-sensitivity test) if $(TryLinkC $""" /* For statfs */ #include <sys/param.h> #include <sys/mount.h> /* For getattrlist */ #include <sys/attr.h> #include <unistd.h> typedef struct vol_caps_buf { unsigned long size; vol_capabilities_attr_t caps; } vol_caps_buf_t; /* This is nonsense, but it includes every identifier we care about */ int main(int argc, char *argv[]) { struct statfs stat; statfs(".", &stat); struct attrlist alist; alist.bitmapcount = ATTR_BIT_MAP_COUNT; alist.volattr = ATTR_VOL_CAPABILITIES; vol_caps_buf_t buffer; getattrlist(stat.f_mntonname, &alist, &buffer, sizeof(buffer), 0); /* Check for the capabilities we need */ int foo = ATTR_VOL_CAPABILITIES + VOL_CAPABILITIES_FORMAT + VOL_CAP_FMT_CASE_SENSITIVE; return 0; } """) ConfMsgResult($"Mac OS X implementation, using getattrlist") DETECT_FS_CASE_SENSITIVE = true DETECT_FS_CASE_SENSITIVE_CFLAGS = -DDETECT_FS_CASE_SENSITIVE_GETATTRLIST export else ConfMsgResult(Generic) export