From e2cbe1a0a4db750ab05d804901f155adb312746b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Plourde?= Date: Thu, 4 Sep 2008 16:30:21 -0400 Subject: [PATCH] Win32 build system fixes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Søren Sandmann Pedersen --- pixman/Makefile.win32 | 68 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/pixman/Makefile.win32 b/pixman/Makefile.win32 index f7ecd25..ad30f8c 100644 --- a/pixman/Makefile.win32 +++ b/pixman/Makefile.win32 @@ -3,19 +3,27 @@ LIBRARY = pixman-1 CC = cl LINK = link -ifeq ($(CFG),) -CFG=release +CFG_VAR = $(CFG) +ifeq ($(CFG_VAR),) +CFG_VAR=release endif -ifeq ($(MMX),) -MMX=1 +MMX_VAR = $(MMX) +ifeq ($(MMX_VAR),) +MMX_VAR=on +endif + +SSE2_VAR = $(SSE2) +ifeq ($(SSE2_VAR),) +SSE2_VAR=on endif CFLAGS = -MD -nologo -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -I../pixman/src -I. -DPACKAGE=$(LIBRARY) -DPACKAGE_VERSION="" -DPACKAGE_BUGREPORT="" MMX_CFLAGS = -DUSE_MMX -w14710 -w14714 +SSE2_CFLAGS = -DUSE_SSE2 # optimization flags -ifeq ($(CFG),debug) +ifeq ($(CFG_VAR),debug) CFLAGS += -Od -Zi else CFLAGS += -O2 @@ -44,24 +52,31 @@ SOURCES = \ $(NULL) # MMX compilation flags -ifeq ($(MMX),1) +ifeq ($(MMX_VAR),on) CFLAGS += $(MMX_CFLAGS) SOURCES += pixman-mmx.c endif -OBJECTS = $(patsubst %.c, $(CFG)/%.obj, $(SOURCES)) +# SSE2 compilation flags +ifeq ($(SSE2_VAR),on) +CFLAGS += $(SSE2_CFLAGS) +SOURCES += pixman-sse2.c +endif + +OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(SOURCES)) # targets -all: inform informMMX $(CFG)/$(LIBRARY).lib +all: inform informMMX informSSE2 $(CFG_VAR)/$(LIBRARY).lib @exit 0 clean: inform clean_r @exit 0 -pixman: inform informMMX $(CFG)/$(LIBRARY).lib +pixman: inform informMMX informSSE2 $(CFG_VAR)/$(LIBRARY).lib @exit 0 inform: ifneq ($(CFG),release) ifneq ($(CFG),debug) +ifneq ($(CFG),) @echo "Invalid specified configuration option : "$(CFG)"." @echo @echo -n "Possible choices for configuration are " @@ -69,25 +84,44 @@ ifneq ($(CFG),debug) @echo "" @exit 1 endif + @echo "Using default RELEASE configuration... (use CFG=release or CFG=debug)" +endif endif informMMX: -ifneq ($(MMX),0) -ifneq ($(MMX),1) - @echo "Invalid specified MMX option : "$(MMX)"." +ifneq ($(MMX),off) +ifneq ($(MMX),on) +ifneq ($(MMX),) + @echo "Invalid specified MMX option : "$(MMX_VAR)"." @echo - @echo -n "Possible choices for MMX are 0 or 1" + @echo -n "Possible choices for MMX are 'on' or 'off'" @echo "" @exit 1 endif + @echo "Setting MMX flag to default value 'on'... (use MMX=on or MMX=off)" +endif +endif + +informSSE2: +ifneq ($(SSE2),off) +ifneq ($(SSE2),on) +ifneq ($(SSE2),) + @echo "Invalid specified SSE option : "$(SSE2)"." + @echo + @echo -n "Possible choices for SSE2 are 'on' or 'off'" + @echo "" + @exit 1 +endif + @echo "Setting SSE2 flag to default value 'on'... (use SSE2=on or SSE2=off)" +endif endif # pixman compilation and linking -$(CFG)/%.obj: %.c - @mkdir -p $(CFG) +$(CFG_VAR)/%.obj: %.c + @mkdir -p $(CFG_VAR) @$(CC) -c $(CFLAGS) -Fo"$@" $< -$(CFG)/$(LIBRARY).lib: $(OBJECTS) +$(CFG_VAR)/$(LIBRARY).lib: $(OBJECTS) lib -NOLOGO -OUT:$@ $(OBJECTS) || exit 0 pixman-combine32.c: combine.inc pixman-combine32.h combine.pl @@ -101,5 +135,5 @@ pixman-combine64.h: combine.h.inc combine.pl perl ./combine.pl 16 < $< > $@ || ($(RM) $@; exit 1) clean_r: - @rm -f $(CFG)/*.obj $(CFG)/*.lib $(CFG)/*.pdb $(CFG)/*.ilk || exit 0 + @rm -f $(CFG_VAR)/*.obj $(CFG_VAR)/*.lib $(CFG_VAR)/*.pdb $(CFG)/*.ilk || exit 0 @rm -f $(CFG)/*.obj $(CFG)/*.lib $(CFG)/*.pdb $(CFG)/*.ilk pixman-combine32.c pixman-combine64.c || exit 0 -- 2.7.4