除了windows之外的所有内容都添加构建标

时间:2011-02-13 17:39:27

标签: c windows cross-platform makefile

我有一个项目,它在Windows上使用Windows API,在每个其他平台上使用pthreads。

如果我不针对Windows,如何让我的makefile将-pthread添加到我的CFLAGS?对于编译,我使用[gcc(mingw和native),clang,icc],对于我有[GNU / Linux,BSD,Darwin,Windows]的目标。

2 个答案:

答案 0 :(得分:1)

假设您已安装mingw并正在使用GNUmake:

OPERATING_SYSTEM:=        $(shell uname | sed 's/-.*//')
ifneq ($(OPERATING_SYSTEM),MINGW32_NT)
CFLAGS+=                  -pthread
LDFLAGS+=                 -pthread
endif

答案 1 :(得分:0)

我最终做了......

uname_S = $(shell sh -c 'uname -s 2>/dev/null || echo not')
ifeq (,$(findstring MINGW,$(uname_S)))
    CFLAGS += -pthread
endif

完全从git源代码树中删除。