c - Tilføjelse af bygget flag på alt undtagen vinduer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et projekt, der bruger Windows API på Windows, og pthreads på alle andre platforme.


Hvordan bruger jeg min makefile -pthread til min CFLAGS, hvis jeg ikke targetterer for windows? Til compilering bruger jeg [[gcc (mingw og native), clang, icc) og til mål jeg har [[GNU/Linux, BSD, Darwin, Windows]].

Bedste reference


Forudsat at du har mingw installeret og bruger GNUmake:


OPERATING\_SYSTEM:=        $(shell uname | sed 's/-.*//')
ifneq ($(OPERATING\_SYSTEM),MINGW32\_NT)
CFLAGS+=                  -pthread
LDFLAGS+=                 -pthread
endif

Andre referencer 1


Jeg endte med at gøre ...


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


som var helt revet fra git source-træet.