X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=Makefile;h=850201703df43ef95c3dc2543a277a706826636f;hb=67f227a85eb58fec3747915ce651401f0830fa2c;hp=78a3345be5b06b9286fbe9be35d3c7fc8682edd6;hpb=0e770dcc3d120f6d9573693e5abbd3cf15be18c1;p=Project_algorithmic_C.git diff --git a/Makefile b/Makefile index 78a3345..8502017 100644 --- a/Makefile +++ b/Makefile @@ -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 @@ -82,7 +84,7 @@ 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