Win32 build system fixes
authorFrédéric Plourde <frederic.plourde@polymtl.ca>
Thu, 4 Sep 2008 20:30:21 +0000 (16:30 -0400)
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>
Thu, 4 Sep 2008 20:30:21 +0000 (16:30 -0400)
Signed-off-by: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
pixman/Makefile.win32

index f7ecd25..ad30f8c 100644 (file)
@@ -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