67 lines
1.4 KiB
Makefile
67 lines
1.4 KiB
Makefile
UNAME := $(strip $(shell uname))
|
|
ifeq ($(UNAME),)
|
|
$(error Operating system could not be detected!)
|
|
endif
|
|
|
|
DUMPMACHINE := $(strip $(shell $(CC) -dumpmachine))
|
|
ifeq ($(DUMPMACHINE),)
|
|
$(error C compiler could not be detected!)
|
|
endif
|
|
|
|
ifneq ($(DEBUG),)
|
|
XCFLAGS = -Og -g
|
|
else
|
|
ifneq ($(ASAN),)
|
|
XCFLAGS = -O1 -g -fsanitize=address -fno-omit-frame-pointer
|
|
XLDFLAGS += -static-libasan
|
|
else
|
|
XCFLAGS = -Ofast -DNDEBUG
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(firstword $(filter x86_64-%,$(DUMPMACHINE))),)
|
|
XCFLAGS += -march=x86-64 -mtune=nocona
|
|
else ifneq ($(firstword $(filter i686-%,$(DUMPMACHINE))),)
|
|
XCFLAGS += -march=pentiumpro -mtune=intel
|
|
endif
|
|
|
|
ifneq ($(firstword $(filter %-mingw32 %-windows-gnu %-cygwin,$(DUMPMACHINE))),)
|
|
DLL_LDFLAGS = -shared -Wl,--out-implib,$@.a
|
|
EXE_SUFFIX := .exe
|
|
DLL_SUFFIX := .dll
|
|
ifneq ($(firstword $(filter i686-%,$(DUMPMACHINE))),)
|
|
XLDFLAGS += -Wl,--large-address-aware
|
|
endif
|
|
else
|
|
ifneq ($(findstring -apple-darwin,$(DUMPMACHINE)),)
|
|
DLL_LDFLAGS = -dynamiclib
|
|
DLL_SUFFIX := .dylib
|
|
else
|
|
DLL_LDFLAGS = -shared
|
|
DLL_SUFFIX := .so
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(STATIC),)
|
|
XLDFLAGS += -static
|
|
endif
|
|
|
|
ifneq ($(FLTO),)
|
|
XCFLAGS += -flto
|
|
endif
|
|
|
|
ifneq ($(STRIP),)
|
|
XLDFLAGS += -Wl,--strip-all
|
|
DLL_LDFLAGS += -Wl,--strip-all
|
|
endif
|
|
|
|
ifneq ($(firstword $(filter MINGW32_NT-% MINGW64_NT-% CYGWIN_NT-%,$(UNAME))),)
|
|
ENV_LDPATH := PATH
|
|
else
|
|
ifneq ($(firstword $(UNAME)),Darwin)
|
|
ENV_LDPATH := LD_LIBRARY_PATH
|
|
else
|
|
ENV_LDPATH := DYLD_LIBRARY_PATH
|
|
endif
|
|
endif
|