LIBRARY = pixman-1 CC = cl LINK = link CFG_VAR = $(CFG) ifeq ($(CFG_VAR),) CFG_VAR=release endif 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_VAR),debug) CFLAGS += -Od -Zi else CFLAGS += -O2 endif SOURCES = \ pixman-image.c \ pixman-access.c \ pixman-access-accessors.c \ pixman-region16.c \ pixman-region32.c \ pixman-combine32.c \ pixman-combine64.c \ pixman-utils.c \ pixman-edge.c \ pixman-edge-accessors.c \ pixman-trap.c \ pixman-timer.c \ pixman-matrix.c \ pixman-gradient-walker.c \ pixman-conical-gradient.c \ pixman-linear-gradient.c \ pixman-radial-gradient.c \ pixman-bits-image.c \ pixman.c \ pixman-noop.c \ pixman-cpu.c \ pixman-fast-path.c \ pixman-implementation.c \ pixman-solid-fill.c \ pixman-general.c \ $(NULL) BUILT_SOURCES = pixman-combine32.h pixman-combine32.c pixman-combine64.h pixman-combine64.c # MMX compilation flags ifeq ($(MMX_VAR),on) CFLAGS += $(MMX_CFLAGS) SOURCES += pixman-mmx.c endif # 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 informSSE2 $(CFG_VAR)/$(LIBRARY).lib @exit 0 clean: inform clean_r @exit 0 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 " @echo "'release' and 'debug'" @echo "" @exit 1 endif @echo "Using default RELEASE configuration... (use CFG=release or CFG=debug)" endif endif informMMX: ifneq ($(MMX),off) ifneq ($(MMX),on) ifneq ($(MMX),) @echo "Invalid specified MMX option : "$(MMX_VAR)"." @echo @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_VAR)/%.obj: %.c $(BUILT_SOURCES) @mkdir -p $(CFG_VAR) @$(CC) -c $(CFLAGS) -Fo"$@" $< $(CFG_VAR)/$(LIBRARY).lib: $(OBJECTS) lib -NOLOGO -OUT:$@ $(OBJECTS) || exit 0 pixman-combine32.c: pixman-combine.c.template pixman-combine32.h make-combine.pl perl ./make-combine.pl 8 < $< > $@ || ($(RM) $@; exit 1) pixman-combine32.h: pixman-combine.h.template make-combine.pl perl ./make-combine.pl 8 < $< > $@ || ($(RM) $@; exit 1) pixman-combine64.c: pixman-combine.c.template pixman-combine64.h make-combine.pl perl ./make-combine.pl 16 < $< > $@ || ($(RM) $@; exit 1) pixman-combine64.h: pixman-combine.h.template make-combine.pl perl ./make-combine.pl 16 < $< > $@ || ($(RM) $@; exit 1) clean_r: @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 $(BUILT_SOURCES) || exit 0