# USE_CLANG=1 # USE_ASM = 1 # IS_X64 = 1 # MY_ARCH = # USE_ASM= # USE_JWASM=1 MY_ARCH_2 = $(MY_ARCH) MY_ASM = asmc ifdef USE_JWASM MY_ASM = jwasm endif ifndef RC RC=windres.exe --target=pe-x86-64 RC=windres.exe -F pe-i386 RC=windres.exe endif PROGPATH = $(O)/$(PROG) PROGPATH_STATIC = $(O)/$(PROG)s ifneq ($(CC), xlc) CFLAGS_WARN_WALL = -Werror -Wall -Wextra endif # for object file # -Wa,-aln=test.s # -save-temps CFLAGS_BASE_LIST = -c # CFLAGS_BASE_LIST = -S CFLAGS_BASE = -O2 $(CFLAGS_BASE_LIST) $(CFLAGS_WARN_WALL) $(CFLAGS_WARN) \ -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ -fPIC FLAGS_FLTO = -ffunction-sections FLAGS_FLTO = -flto FLAGS_FLTO = # # -DZ7_AFFINITY_DISABLE ifdef SystemDrive IS_MINGW = 1 else ifdef SYSTEMDRIVE # ifdef OS IS_MINGW = 1 endif endif ifdef IS_MINGW LDFLAGS_STATIC_2 = -static else ifndef DEF_FILE ifndef IS_NOT_STANDALONE ifndef MY_DYNAMIC_LINK ifneq ($(CC), clang) LDFLAGS_STATIC_2 = # -static # -static-libstdc++ -static-libgcc endif endif endif endif endif LDFLAGS_STATIC = -DNDEBUG $(LDFLAGS_STATIC_2) ifndef O ifdef IS_MINGW O=_o else O=_o endif endif ifdef DEF_FILE ifdef IS_MINGW SHARED_EXT=.dll LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC) else SHARED_EXT=.so LDFLAGS = -shared -fPIC $(LDFLAGS_STATIC) CC_SHARED=-fPIC endif else LDFLAGS = $(LDFLAGS_STATIC) # -s is not required for clang, do we need it for GCC ??? #-static -static-libgcc -static-libstdc++ ifdef IS_MINGW SHARED_EXT=.exe else SHARED_EXT= endif endif PROGPATH = $(O)/$(PROG)$(SHARED_EXT) PROGPATH_STATIC = $(O)/$(PROG)s$(SHARED_EXT) ifdef IS_MINGW ifdef MSYSTEM RM = rm -f MY_MKDIR=mkdir -p DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS) LIB_HTMLHELP=-lhtmlhelp else RM = del MY_MKDIR=mkdir DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll endif LIB2_GUI = -lOle32 -lGdi32 -lComctl32 -lComdlg32 -lShell32 $(LIB_HTMLHELP) LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 $(LIB2_GUI) CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE # -Wno-delete-non-virtual-dtor else RM = rm -f MY_MKDIR=mkdir -p DEL_OBJ_EXE = -$(RM) $(PROGPATH) $(PROGPATH_STATIC) $(OBJS) # CFLAGS_BASE := $(CFLAGS_BASE) -DZ7_ST # CXXFLAGS_EXTRA = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE # LOCAL_LIBS=-lpthread # LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl LIB2 = -lpthread -ldl endif CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@ ifdef IS_MINGW ifdef IS_X64 AFLAGS_ABI = -win64 else AFLAGS_ABI = -coff -DABI_CDECL # -DABI_CDECL # -DABI_LINUX # -DABI_CDECL endif AFLAGS = -nologo $(AFLAGS_ABI) -Fo$(O)/$(basename $( predef_cc_log # $(CC) $(CFLAGS) -E -dM - < /dev/null predef_cxx: $(CXX) $(CFLAGS) -E $(SHOW_PREDEF) ../../../Common/CrcReg.cpp > predef_cxx_log predef: predef_cc predef_cxx clean: -$(DEL_OBJ_EXE)