X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=Makefile;h=eed8855cbb7e7d2778d78ba41129e0223b0c15da;hb=f084143ffc5d34871d0d70f28ca3163a256c14c4;hp=78a3345be5b06b9286fbe9be35d3c7fc8682edd6;hpb=0e770dcc3d120f6d9573693e5abbd3cf15be18c1;p=Project_algorithmic_C.git diff --git a/Makefile b/Makefile index 78a3345..eed8855 100644 --- a/Makefile +++ b/Makefile @@ -22,8 +22,8 @@ SRC_PATH:=src LIBRARY_NAME:=lib$(BINARY_NAME) LIBRARY_PATH:=lib LDLIBS:=-l$(BINARY_NAME) -lncurses -ltinfo -BUILD_TYPE:=debug -#BUILD_TYPE:=release +#BUILD_TYPE:=debug +BUILD_TYPE:=release # ==================================== # DO NOT CHANGE STUFF BEYOND THIS LINE @@ -40,6 +40,7 @@ UNAME := $(shell uname -s) ifeq ($(BUILD_TYPE),debug) BUILDDIR := .build/debug DEBUG_FLAG = -g +DEBUG = 1 STRIP_FLAG = OPTI_FLAG = -O0 LTO_SUPPORT = yes @@ -47,6 +48,7 @@ GOLD_SUPPORT = yes else BUILDDIR := .build/release DEBUG_FLAG = +DEBUG = 0 STRIP_FLAG = -s OPTI_FLAG = -O3 LTO_SUPPORT = yes @@ -76,13 +78,13 @@ POSTCOMPILE = mv -f $(DEPDIR)/$(notdir $*).Td $(DEPDIR)/$(notdir $*).d ifeq ($(findstring CYGWIN_NT,$(UNAME)),CYGWIN_NT) CYGWIN_DLIBRARY_NAME := $(subst lib,cyg,$(LIBRARY_NAME)) GOLD_SUPPORT = no -# Cygwin ncurses do not contain tinfo +# Cygwin ncurses does not contain tinfo LDLIBS := $(filter-out -ltinfo,$(LDLIBS)) BINARY_SUFFIX := .exe DLIB_SUFFIX := .dll # do not archive external libraries CYGWIN_LDLIBS_NOARCHIVE := $(filter-out -l$(BINARY_NAME),$(LDLIBS)) -CYGWIN_LIBLDFLAGS := -Wl,--out-implib=$(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX).a \ +CYGWIN_LIBLDFLAGS := -Wl,--out-implib=$(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX)$(SLIB_SUFFIX) \ -Wl,--export-all-symbols \ -Wl,--enable-auto-import endif @@ -106,7 +108,7 @@ endif # Putting header files in the source directory is not the purpose of this INCLUDES_PATH variable INCLUDES_PATH := $(INCLUDES_PATH) -I$(LIBRARY_PATH) -CFLAGS := $(CFLAGS) $(CFLAGS_LTO) $(WARN_FLAGS) $(STD_FLAG) $(OPTI_FLAG) $(DEBUG_FLAG) $(INCLUDES_PATH) +CFLAGS := -DDEBUG=$(DEBUG) $(CFLAGS) $(CFLAGS_LTO) $(WARN_FLAGS) $(STD_FLAG) $(OPTI_FLAG) $(DEBUG_FLAG) $(INCLUDES_PATH) LIBCFLAGS := -fPIC $(CFLAGS) LDFLAGS := $(LDFLAGS) $(LDFLAGS_LTO) $(LDFLAGS_GOLD) $(STRIP_FLAG) LIBLDFLAGS := $(SHLIBLDFLAG) $(LDFLAGS) @@ -125,7 +127,7 @@ $(LIBRARY_PATH)/$(SLIB_PREFIX)$(LIBRARY_NAME)$(SLIB_SUFFIX): $(LIBOBJS) @$(AR) rcs $@ $^ ifeq ($(findstring CYGWIN_NT,$(UNAME)),CYGWIN_NT) -$(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX).a: $(LIBRARY_PATH)/$(DLIB_PREFIX)$(CYGWIN_DLIBRARY_NAME)$(DLIB_SUFFIX) +$(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX)$(SLIB_SUFFIX): $(LIBRARY_PATH)/$(DLIB_PREFIX)$(CYGWIN_DLIBRARY_NAME)$(DLIB_SUFFIX) $(LIBRARY_PATH)/$(DLIB_PREFIX)$(CYGWIN_DLIBRARY_NAME)$(DLIB_SUFFIX): $(LIBOBJS) @echo "[LD DLL] $@" @$(LD) $(LIBCFLAGS) $(LIBLDFLAGS) $(CYGWIN_LIBLDFLAGS) -Wl,--whole-archive $^ -Wl,--no-whole-archive $(CYGWIN_LDLIBS_NOARCHIVE) -o $@ @@ -148,7 +150,7 @@ $(BINARY_NAME).static$(BINARY_SUFFIX): $(OBJS) $(LIBRARY_PATH)/$(SLIB_PREFIX)$(L @$(LD) $(CFLAGS) $(STATICLIBLDFLAGS) $^ $(LDLIBS) -o $@ ifeq ($(findstring CYGWIN_NT,$(UNAME)),CYGWIN_NT) -$(BINARY_NAME).dynamic$(BINARY_SUFFIX): $(OBJS) $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX).a +$(BINARY_NAME).dynamic$(BINARY_SUFFIX): $(OBJS) $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX)$(SLIB_SUFFIX) else $(BINARY_NAME).dynamic$(BINARY_SUFFIX): $(OBJS) $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX) endif @@ -186,11 +188,14 @@ endif -@rm $(LIBRARY_PATH)/$(SLIB_PREFIX)$(LIBRARY_NAME)$(SLIB_SUFFIX) ifeq ($(findstring CYGWIN_NT,$(UNAME)),CYGWIN_NT) -@rm $(LIBRARY_PATH)/$(DLIB_PREFIX)$(CYGWIN_DLIBRARY_NAME)$(DLIB_SUFFIX) - -@rm $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX).a + -@rm $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX)$(SLIB_SUFFIX) else -@rm $(LIBRARY_PATH)/$(DLIB_PREFIX)$(LIBRARY_NAME)$(DLIB_SUFFIX) endif +run: $(BINARY_NAME) + ./$(BINARY_NAME) + disassemble: $(BINARY_NAME)$(BINARY_SUFFIX) objdump -d $< | less