| 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-linear-gradient.c \ |
| pixman-radial-gradient.c \ |
| pixman-bits-image.c \ |
| pixman.c \ |
| pixman-cpu.c \ |
| pixman-fast-path.c \ |
| pixman-implementation.c \ |
| pixman-solid-fill.c \ |
| pixman-general.c \ |
| $(NULL) |
| |
| # 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 |
| @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 pixman-combine32.c pixman-combine64.c pixman-combine64.c pixman-combine64.h || exit 0 |