From dcad4cba4c3358a2267e29da8bb6eba3a2ab5c08 Mon Sep 17 00:00:00 2001 From: Martin Kinkelin Date: Sat, 16 Dec 2023 20:52:22 +0100 Subject: [PATCH] Makefile: Compile zlib .c files with DMD via importC --- Makefile | 43 +++++-------------------------------------- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index fc4fe510f59..b300e8c99d9 100644 --- a/Makefile +++ b/Makefile @@ -101,58 +101,26 @@ else DRUNTIME = $(DRUNTIME_PATH)/../generated/$(OS)/$(BUILD)/$(MODEL)/druntime.lib endif -# Set CC and DMD +# Set DMD ifeq ($(OS),win32wine) - CC = wine dmc.exe DMD = wine dmd.exe RUN = wine else DMD = $(DMD_DIR)/generated/$(OS)/$(BUILD)/$(MODEL)/dmd$(DOTEXE) - ifeq ($(MODEL),32omf) - CC = dmc - else ifeq ($(OS),windows) - CC = cl.exe - else - CC = cc - endif RUN = endif -# Set CFLAGS -OUTFILEFLAG = -o +# Set extra CFLAGS (for DMD - the zlib .c files are compiled via importC) NODEFAULTLIB=-defaultlib= -debuglib= ifeq (,$(findstring win,$(OS))) - CFLAGS=$(MODEL_FLAG) -fPIC -std=c11 -DHAVE_UNISTD_H + CFLAGS += -P=-DHAVE_UNISTD_H # Bundled with the system library on OSX, and doesn't work with >= MacOS 11 ifneq (osx,$(OS)) NODEFAULTLIB += -L-lpthread -L-lm endif - ifeq ($(BUILD),debug) - CFLAGS += -g - else - CFLAGS += -O3 - endif else ifeq ($(MODEL),32omf) - CFLAGS=-DNO_snprintf - ifeq ($(BUILD),debug) - CFLAGS += -g - else - CFLAGS += -O - endif - else # win64/win32coff - OUTFILEFLAG = /Fo - CFLAGS += /nologo /Zl /GS- - ifeq ($(BUILD),debug) - CFLAGS += /Z7 - else - CFLAGS += /O2 - endif - endif -endif -ifeq (osx,$(OS)) - ifeq (64,$(MODEL)) - CFLAGS+=--target=x86_64-darwin-apple # ARM cpu is not supported by dmd + CFLAGS += -P=-DNO_snprintf endif endif @@ -351,8 +319,7 @@ lib: $(LIB) dll: $(ROOT)/libphobos2.so $(ROOT)/%$(DOTOBJ): %.c - @[ -d $(dir $@) ] || mkdir -p $(dir $@) || [ -d $(dir $@) ] - $(CC) -c $(CFLAGS) $< $(OUTFILEFLAG)$@ + $(DMD) -c $(DFLAGS) -P=-Ietc/c/zlib $(CFLAGS) -of$@ $< $(LIB): $(OBJS) $(ALL_D_FILES) $(DRUNTIME) $(DMD) $(DFLAGS) -lib -of$@ $(DRUNTIME) $(D_FILES) $(OBJS)