[xiph-commits] r13601 - in trunk/theora/win32: . xmingw32

tterribe at svn.xiph.org tterribe at svn.xiph.org
Thu Aug 23 13:18:36 PDT 2007


Author: tterribe
Date: 2007-08-23 13:18:36 -0700 (Thu, 23 Aug 2007)
New Revision: 13601

Added:
   trunk/theora/win32/xmingw32/
   trunk/theora/win32/xmingw32/Makefile
   trunk/theora/win32/xmingw32/libtheoradec-all.def
   trunk/theora/win32/xmingw32/libtheoradec-all.rc
   trunk/theora/win32/xmingw32/libtheoradec.rc
   trunk/theora/win32/xmingw32/libtheoradec70.rc
   trunk/theora/win32/xmingw32/libtheoradec70d.rc
   trunk/theora/win32/xmingw32/libtheoradec71.rc
   trunk/theora/win32/xmingw32/libtheoradec71d.rc
   trunk/theora/win32/xmingw32/libtheoradec80.rc
   trunk/theora/win32/xmingw32/libtheoradec80d.rc
   trunk/theora/win32/xmingw32/libtheoradecd.rc
   trunk/theora/win32/xmingw32/libtheoraenc-all.def
   trunk/theora/win32/xmingw32/libtheoraenc-all.rc
   trunk/theora/win32/xmingw32/libtheoraenc.rc
   trunk/theora/win32/xmingw32/libtheoraenc70.rc
   trunk/theora/win32/xmingw32/libtheoraenc70d.rc
   trunk/theora/win32/xmingw32/libtheoraenc71.rc
   trunk/theora/win32/xmingw32/libtheoraenc71d.rc
   trunk/theora/win32/xmingw32/libtheoraenc80.rc
   trunk/theora/win32/xmingw32/libtheoraenc80d.rc
   trunk/theora/win32/xmingw32/libtheoraencd.rc
Log:
Add cross-compilation Makefile for mingw32.
This is currently the only way to get asm optimizations in the decoder on
 Windows.
Builds both release and debug versions for each version of libc that currently
 ships with mingw32.
DLL version information must still be updated manually (at the top of the
 Makefile), but that's okay because mingw32 doesn't implement DllGetVersion
 anyway, so it will never show up unless someone queries the resources manually.


Added: trunk/theora/win32/xmingw32/Makefile
===================================================================
--- trunk/theora/win32/xmingw32/Makefile	                        (rev 0)
+++ trunk/theora/win32/xmingw32/Makefile	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,421 @@
+# NOTE: This Makefile requires GNU make
+# Location to put the targets.
+TARGETBINDIR = .
+TARGETLIBDIR = .
+# DLL version information. Currently this must be updated manually.
+# Fields are: major, minor, build number, QFE version
+VERSION_FIELD = 1,0,0,0
+VERSION_STRING = \\\"1.0\\\"
+# Name of the targets
+# Hooray for Windows DLL hell.
+LIBTHEORAENC_TARGET = libtheoraenc.dll
+LIBTHEORAENCD_TARGET = libtheoraencd.dll
+LIBTHEORAENC70_TARGET = libtheoraenc70.dll
+LIBTHEORAENC70D_TARGET = libtheoraenc70d.dll
+LIBTHEORAENC71_TARGET = libtheoraenc71.dll
+LIBTHEORAENC71D_TARGET = libtheoraenc71d.dll
+LIBTHEORAENC80_TARGET = libtheoraenc80.dll
+LIBTHEORAENC80D_TARGET = libtheoraenc80d.dll
+
+LIBTHEORADEC_TARGET = libtheoradec.dll
+LIBTHEORADECD_TARGET = libtheoradecd.dll
+LIBTHEORADEC70_TARGET = libtheoradec70.dll
+LIBTHEORADEC70D_TARGET = libtheoradec70d.dll
+LIBTHEORADEC71_TARGET = libtheoradec71.dll
+LIBTHEORADEC71D_TARGET = libtheoradec71d.dll
+LIBTHEORADEC80_TARGET = libtheoradec80.dll
+LIBTHEORADEC80D_TARGET = libtheoradec80d.dll
+
+DUMP_VIDEO_TARGET = dump_video.exe
+PLAYER_EXAMPLE_TARGET = player_example.exe
+ENCODER_EXAMPLE_TARGET = encoder_example.exe
+
+# The compiler tools to use
+CC = i686-mingw32-gcc
+RC = i686-mingw32-windres
+DLLTOOL = i686-mingw32-dlltool
+LD = i686-mingw32-ld
+SDLCONFIG = i686-mingw32-sdl-config
+# The command to use to generate dependency information
+MAKEDEPEND = ${CC} -MM
+#MAKEDEPEND = makedepend -f- -Y --
+
+# The location of include files.
+# Modify these to point to your Ogg and Vorbis include directories if they are
+#  not installed in a standard location.
+CINCLUDE = `${SDLCONFIG} --cflags` -D_REENTRANT
+# Extra compilation flags.
+# You may get speed increases by including flags such as -O2 or -O3 or
+#  -ffast-math, or additional flags, depending on your system and compiler.
+# The correct -march=<architecture> flag will also generate much better code
+#  on newer architectures.
+CFLAGS = -Wall -Wno-parentheses -DUSE_ASM
+RELEASE_CFLAGS = ${CFLAGS} -mtune=nocona -O3 -fomit-frame-pointer -fforce-addr \
+ -finline-functions
+# The -g flag will generally include debugging information.
+DEBUG_CFLAGS = ${CFLAGS} -g
+# Libraries to link with, and the location of library files.
+LIBS = -logg -lvorbis -lvorbisenc `${SDLCONFIG} --libs`
+
+# ANYTHING BELOW THIS LINE PROBABLY DOES NOT NEED EDITING
+CINCLUDE := -I../../include ${CINCLUDE}
+LIBSRCDIR = ../../lib
+BINSRCDIR = ../../examples
+WORKDIR = objs
+
+# C source file lists
+
+LIBTHEORABASE_CHEADERS = \
+internal.h \
+dec/dct.h \
+dec/idct.h \
+dec/huffman.h \
+dec/ocintrin.h \
+dec/quant.h \
+../include/theora/codec.h \
+../include/theora/theora.h \
+
+LIBTHEORADEC_CSOURCES = \
+dec/apiwrapper.c \
+dec/decinfo.c \
+dec/decode.c \
+dec/dequant.c \
+dec/fragment.c \
+dec/huffdec.c \
+dec/idct.c \
+dec/info.c \
+dec/internal.c \
+dec/quant.c \
+dec/state.c \
+$(if $(findstring -DUSE_ASM,${CFLAGS}), \
+dec/x86/mmxstate.c \
+dec/x86/x86state.c \
+dec/x86/mmxidct.c \
+dec/x86/mmxfrag.c \
+cpu.c \
+)
+
+LIBTHEORADEC_CHEADERS =   \
+${LIBTHEORABASE_CHEADERS} \
+dec/decint.h \
+dec/dequant.h \
+dec/huffdec.h \
+
+LIBTHEORAENC_CSOURCES = \
+dec/internal.c \
+enc/blockmap.c \
+enc/common.c \
+enc/dct.c \
+enc/dct_decode.c \
+enc/dct_encode.c \
+enc/dsp.c \
+enc/encode.c \
+enc/encoder_huffman.c \
+enc/encoder_idct.c \
+enc/encoder_quant.c \
+enc/encoder_toplevel.c \
+enc/frarray.c \
+enc/frinit.c \
+enc/mcomp.c \
+enc/misc_common.c \
+enc/pb.c \
+enc/pp.c \
+enc/reconstruct.c \
+enc/scan.c \
+$(if $(findstring -DUSE_ASM,${CFLAGS}), \
+enc/x86_32/dct_decode_mmx.c \
+enc/x86_32/dsp_mmx.c \
+enc/x86_32/dsp_mmxext.c \
+enc/x86_32/recon_mmx.c \
+enc/x86_32/idct_mmx.c \
+enc/x86_32/fdct_mmx.c \
+cpu.c \
+)
+
+LIBTHEORAENC_CHEADERS = \
+cpu.h \
+enc/block_inline.h \
+enc/hufftables.h \
+enc/codec_internal.h \
+enc/pp.h \
+enc/dsp.h \
+enc/quant_lookup.h \
+enc/encoder_huffman.h \
+enc/toplevel_lookup.h \
+enc/encoder_lookup.h \
+
+
+DUMP_VIDEO_CSOURCES = dump_video.c
+ENCODER_EXAMPLE_CSOURCES = encoder_example.c
+PLAYER_EXAMPLE_CSOURCES = player_example.c
+
+# Create object file list.
+LIBTHEORADEC_OBJS:= ${LIBTHEORADEC_CSOURCES:%.c=${WORKDIR}/%.o}
+LIBTHEORADECD_OBJS:= ${LIBTHEORADEC_CSOURCES:%.c=${WORKDIR}/%.do}
+LIBTHEORAENC_OBJS:= ${LIBTHEORAENC_CSOURCES:%.c=${WORKDIR}/%.o}
+LIBTHEORAENCD_OBJS:= ${LIBTHEORAENC_CSOURCES:%.c=${WORKDIR}/%.do}
+DUMP_VIDEO_OBJS:= ${DUMP_VIDEO_CSOURCES:%.c=${WORKDIR}/%.o}
+ENCODER_EXAMPLE_OBJS:= ${ENCODER_EXAMPLE_CSOURCES:%.c=${WORKDIR}/%.o}
+PLAYER_EXAMPLE_OBJS:= ${PLAYER_EXAMPLE_CSOURCES:%.c=${WORKDIR}/%.o}
+RC_OBJS:= ${LIBTHEORADEC_TARGET} ${LIBTHEORAENC_TARGET} \
+ ${LIBTHEORADECD_TARGET} ${LIBTHEORAENCD_TARGET} \
+ ${LIBTHEORADEC70_TARGET} ${LIBTHEORAENC70_TARGET} \
+ ${LIBTHEORADEC70D_TARGET} ${LIBTHEORAENC70D_TARGET} \
+ ${LIBTHEORADEC71_TARGET} ${LIBTHEORAENC71_TARGET} \
+ ${LIBTHEORADEC71D_TARGET} ${LIBTHEORAENC71D_TARGET} \
+ ${LIBTHEORADEC80_TARGET} ${LIBTHEORAENC80_TARGET} \
+ ${LIBTHEORADEC80D_TARGET} ${LIBTHEORAENC80D_TARGET}
+RC_OBJS:= ${RC_OBJS:%.dll=${WORKDIR}/%.rco}
+ALL_OBJS:= ${LIBTHEORADEC_OBJS} ${LIBTHEORAENC_OBJS} \
+ ${LIBTHEORADECD_OBJS} ${LIBTHEORAENCD_OBJS} ${RC_OBJS} \
+ ${DUMP_VIDEO_OBJS} ${ENCODER_EXAMPLE_OBJS} ${PLAYER_EXAMPLE_OBJS}
+# Create the dependency file list
+ALL_DEPS:= ${ALL_OBJS:%.o=%.d}
+ALL_DEPS:= ${ALL_DEPS:%.do=%.dd}
+ALL_DEPS:= ${ALL_DEPS:%.rco=%.d}
+# Prepend source path to file names.
+LIBTHEORADEC_CSOURCES:= ${LIBTHEORADEC_CSOURCES:%=${LIBSRCDIR}/%}
+LIBTHEORADEC_CHEADERS:= ${LIBTHEORADEC_CHEADERS:%=${LIBSRCDIR}/%}
+LIBTHEORAENC_CSOURCES:= ${LIBTHEORAENC_CSOURCES:%=${LIBSRCDIR}/%}
+LIBTHEORAENC_CHEADERS:= ${LIBTHEORAENC_CHEADERS:%=${LIBSRCDIR}/%}
+DUMP_VIDEO_CSOURCES:= ${DUMP_VIDEO_CSOURCES:%=${BINSRCDIR}/%}
+ENCODER_EXAMPLE_CSOURCES:= ${ENCODER_EXAMPLE_CSOURCES:%=${BINSRCDIR}/%}
+PLAYER_EXAMPLE_CSOURCES:= ${PLAYER_EXAMPLE_CSOURCES:%=${BINSRCDIR}/%}
+ALL_CSOURCES:= ${LIBTHEORADEC_CSOURCES} ${LIBTHEORAENC_CSOURCES} \
+ ${DUMP_VIDEO_CSOURCES} ${ENCODER_EXAMPLE_CSOURCES} \
+ ${PLAYER_EXAMPLE_CSOURCES}
+LIBTHEORAENC_RCO:= ${WORKDIR}/${LIBTHEORAENC_TARGET:%.dll=%.rco}
+LIBTHEORAENCD_RCO:= ${WORKDIR}/${LIBTHEORAENCD_TARGET:%.dll=%.rco}
+LIBTHEORAENC70_RCO:= ${WORKDIR}/${LIBTHEORAENC70_TARGET:%.dll=%.rco}
+LIBTHEORAENC70D_RCO:= ${WORKDIR}/${LIBTHEORAENC70D_TARGET:%.dll=%.rco}
+LIBTHEORAENC71_RCO:= ${WORKDIR}/${LIBTHEORAENC71_TARGET:%.dll=%.rco}
+LIBTHEORAENC71D_RCO:= ${WORKDIR}/${LIBTHEORAENC71D_TARGET:%.dll=%.rco}
+LIBTHEORAENC80_RCO:= ${WORKDIR}/${LIBTHEORAENC80_TARGET:%.dll=%.rco}
+LIBTHEORAENC80D_RCO:= ${WORKDIR}/${LIBTHEORAENC80D_TARGET:%.dll=%.rco}
+LIBTHEORADEC_RCO:= ${WORKDIR}/${LIBTHEORADEC_TARGET:%.dll=%.rco}
+LIBTHEORADECD_RCO:= ${WORKDIR}/${LIBTHEORADECD_TARGET:%.dll=%.rco}
+LIBTHEORADEC70_RCO:= ${WORKDIR}/${LIBTHEORADEC70_TARGET:%.dll=%.rco}
+LIBTHEORADEC70D_RCO:= ${WORKDIR}/${LIBTHEORADEC70D_TARGET:%.dll=%.rco}
+LIBTHEORADEC71_RCO:= ${WORKDIR}/${LIBTHEORADEC71_TARGET:%.dll=%.rco}
+LIBTHEORADEC71D_RCO:= ${WORKDIR}/${LIBTHEORADEC71D_TARGET:%.dll=%.rco}
+LIBTHEORADEC80_RCO:= ${WORKDIR}/${LIBTHEORADEC80_TARGET:%.dll=%.rco}
+LIBTHEORADEC80D_RCO:= ${WORKDIR}/${LIBTHEORADEC80D_TARGET:%.dll=%.rco}
+# Prepand target path to file names.
+LIBTHEORAENC_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC_TARGET}
+LIBTHEORAENCD_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENCD_TARGET}
+LIBTHEORAENC70_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC70_TARGET}
+LIBTHEORAENC70D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC70D_TARGET}
+LIBTHEORAENC71_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC71_TARGET}
+LIBTHEORAENC71D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC71D_TARGET}
+LIBTHEORAENC80_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC80_TARGET}
+LIBTHEORAENC80D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORAENC80D_TARGET}
+LIBTHEORADEC_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC_TARGET}
+LIBTHEORADECD_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADECD_TARGET}
+LIBTHEORADEC70_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC70_TARGET}
+LIBTHEORADEC70D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC70D_TARGET}
+LIBTHEORADEC71_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC71_TARGET}
+LIBTHEORADEC71D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC71D_TARGET}
+LIBTHEORADEC80_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC80_TARGET}
+LIBTHEORADEC80D_TARGET:= ${TARGETLIBDIR}/${LIBTHEORADEC80D_TARGET}
+DUMP_VIDEO_TARGET:= ${TARGETBINDIR}/${DUMP_VIDEO_TARGET}
+ENCODER_EXAMPLE_TARGET:= ${TARGETBINDIR}/${ENCODER_EXAMPLE_TARGET}
+PLAYER_EXAMPLE_TARGET:= ${TARGETBINDIR}/${PLAYER_EXAMPLE_TARGET}
+DLL_TARGETS:= ${LIBTHEORADEC_TARGET} ${LIBTHEORAENC_TARGET} \
+ ${LIBTHEORADECD_TARGET} ${LIBTHEORAENCD_TARGET} \
+ ${LIBTHEORADEC70_TARGET} ${LIBTHEORAENC70_TARGET} \
+ ${LIBTHEORADEC70D_TARGET} ${LIBTHEORAENC70D_TARGET} \
+ ${LIBTHEORADEC71_TARGET} ${LIBTHEORAENC71_TARGET} \
+ ${LIBTHEORADEC71D_TARGET} ${LIBTHEORAENC71D_TARGET} \
+ ${LIBTHEORADEC80_TARGET} ${LIBTHEORAENC80_TARGET} \
+ ${LIBTHEORADEC80D_TARGET} ${LIBTHEORAENC80D_TARGET}
+ALL_TARGETS:= ${DLL_TARGETS} ${DLL_TARGETS:%.dll=%.dll.a} \
+ ${DUMP_VIDEO_TARGET} ${ENCODER_EXAMPLE_TARGET} #${PLAYER_EXAMPLE_TARGET}
+IMPLIB_TARGETS:= ${DLL_TARGETS:%.dll=%.def} ${DLL_TARGETS:%.dll=%.lib} \
+ ${DLL_TARGETS:%.dll=%.exp}
+
+# Targets:
+# Everything (default)
+all: ${ALL_TARGETS}
+
+# These require Microsoft's lib.exe to build, and so are not made by default.
+implibs: ${IMPLIB_TARGETS}
+
+# libtheoradec
+${LIBTHEORADEC_TARGET}: ${LIBTHEORADEC_OBJS} ${LIBTHEORADEC_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADEC_OBJS} -logg -lmsvcrt \
+         ${LIBTHEORADEC_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADECD_TARGET}: ${LIBTHEORADECD_OBJS} ${LIBTHEORADECD_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADECD_OBJS} -logg -lmsvcrtd \
+         ${LIBTHEORADECD_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC70_TARGET}: ${LIBTHEORADEC_OBJS} ${LIBTHEORADEC70_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADEC_OBJS} -logg -lmsvcr70 \
+         ${LIBTHEORADEC70_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC70D_TARGET}: ${LIBTHEORADECD_OBJS} ${LIBTHEORADEC70D_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADECD_OBJS} -logg -lmsvcr70d \
+         ${LIBTHEORADEC70D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC71_TARGET}: ${LIBTHEORADEC_OBJS} ${LIBTHEORADEC71_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADEC_OBJS} -logg -lmsvcr71 \
+         ${LIBTHEORADEC71_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC71D_TARGET}: ${LIBTHEORADECD_OBJS} ${LIBTHEORADEC71D_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADECD_OBJS} -logg -lmsvcr71d \
+         ${LIBTHEORADEC71D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC80_TARGET}: ${LIBTHEORADEC_OBJS} ${LIBTHEORADEC80_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADEC_OBJS} -logg -lmsvcr80 \
+         ${LIBTHEORADEC80_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+${LIBTHEORADEC80D_TARGET}: ${LIBTHEORADECD_OBJS} ${LIBTHEORADEC80D_RCO} \
+ libtheoradec-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ ${LIBTHEORADECD_OBJS} -logg -lmsvcr80d \
+         ${LIBTHEORADEC80D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoradec-all.def
+
+# libtheoraenc
+${LIBTHEORAENC_TARGET}: ${LIBTHEORAENC_OBJS} ${LIBTHEORAENC_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENC_OBJS} ${LIBTHEORADEC_TARGET} -logg -lmsvcrt \
+         ${LIBTHEORAENC_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENCD_TARGET}: ${LIBTHEORAENCD_OBJS} ${LIBTHEORAENCD_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENCD_OBJS} ${LIBTHEORADECD_TARGET} -logg -lmsvcrtd \
+         ${LIBTHEORAENCD_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC70_TARGET}: ${LIBTHEORAENC_OBJS} ${LIBTHEORAENC70_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENC_OBJS} ${LIBTHEORADEC70_TARGET} -logg -lmsvcr70 \
+         ${LIBTHEORAENC70_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC70D_TARGET}: ${LIBTHEORAENCD_OBJS} ${LIBTHEORAENC70D_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENCD_OBJS} ${LIBTHEORADEC70D_TARGET} -logg -lmsvcr70d \
+         ${LIBTHEORAENC70D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC71_TARGET}: ${LIBTHEORAENC_OBJS} ${LIBTHEORAENC71_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENC_OBJS} ${LIBTHEORADEC71_TARGET} -logg -lmsvcr71 \
+         ${LIBTHEORAENC71_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC71D_TARGET}: ${LIBTHEORAENCD_OBJS} ${LIBTHEORAENC71D_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENCD_OBJS} ${LIBTHEORADEC71D_TARGET} -logg -lmsvcr71d \
+         ${LIBTHEORAENC71D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC80_TARGET}: ${LIBTHEORAENC_OBJS} ${LIBTHEORAENC80_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENC_OBJS} ${LIBTHEORADEC80_TARGET} -logg -lmsvcr80 \
+         ${LIBTHEORAENC80_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+${LIBTHEORAENC80D_TARGET}: ${LIBTHEORAENCD_OBJS} ${LIBTHEORAENC80D_RCO} \
+ libtheoraenc-all.def
+	mkdir -p ${TARGETLIBDIR}
+	${CC} -shared -o $@ \
+         ${LIBTHEORAENCD_OBJS} ${LIBTHEORADEC80D_TARGET} -logg -lmsvcr80d \
+         ${LIBTHEORAENC80D_RCO} \
+         -Wl,--output-def,${@:.dll=.def},--out-implib,$@.a,libtheoraenc-all.def
+
+# dump_video
+${DUMP_VIDEO_TARGET}: ${DUMP_VIDEO_OBJS} ${LIBTHEORADEC_TARGET}
+	mkdir -p ${TARGETBINDIR}
+	${CC} ${CFLAGS} -o $@ ${DUMP_VIDEO_OBJS} ${LIBS} \
+         ${LIBTHEORADEC_TARGET}.a
+
+# encoder_example
+${ENCODER_EXAMPLE_TARGET}: ${ENCODER_EXAMPLE_OBJS} ${LIBTHEORADEC_TARGET} \
+                            ${LIBTHEORAENC_TARGET}
+	mkdir -p ${TARGETBINDIR}
+	${CC} ${CFLAGS} -o $@ ${ENCODER_EXAMPLE_OBJS} ${LIBS} \
+         ${LIBTHEORAENC_TARGET}.a ${LIBTHEORADEC_TARGET}.a
+
+# player_example
+${PLAYER_EXAMPLE_TARGET}: ${PLAYER_EXAMPLE_OBJS} ${LIBTHEORADEC_TARGET}
+	mkdir -p ${TARGETBINDIR}
+	${CC} ${CFLAGS} -o $@ ${PLAYER_EXAMPLE_OBJS} ${LIBS} \
+         ${LIBTHEORADEC_TARGET}.a
+
+# Remove all targets.
+clean:
+	-rm ${ALL_OBJS} ${ALL_DEPS} ${ALL_TARGETS} ${IMPLIB_TARGETS}
+	-rmdir ${WORKDIR}/enc/x86_32
+	-rmdir ${WORKDIR}/enc
+	-rmdir ${WORKDIR}/dec/x86
+	-rmdir ${WORKDIR}/dec
+	-rmdir ${WORKDIR}
+
+# Make everything depend on changes in the Makefile
+${ALL_OBJS} ${ALL_DEPS} ${ALL_TARGETS} : Makefile
+
+# Specify which targets are phony for GNU make
+.PHONY : all clean
+
+# Rules
+# Windows-specific rules
+%.dll.a : %.dll
+%.def : %.dll
+%.exp : %.lib
+%.lib : %.def
+	wine lib /machine:i386 /def:$<
+${WORKDIR}/%.d : %.rc
+	mkdir -p ${dir $@}
+	${MAKEDEPEND} -x c-header ${CINCLUDE} $< -MT ${@:%.d=%.rco} > $@
+${WORKDIR}/%.rco : %.rc
+	mkdir -p ${dir $@}
+	${RC} ${CINCLUDE} -DTH_VERSION_FIELD=${VERSION_FIELD} \
+         -DTH_VERSION_STRING=${VERSION_STRING} $< $@
+# Normal compilation
+${WORKDIR}/%.d : ${LIBSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${MAKEDEPEND} ${CINCLUDE} ${RELEASE_CFLAGS} $< -MT ${@:%.d=%.o} > $@
+${WORKDIR}/%.d : ${BINSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${MAKEDEPEND} ${CINCLUDE} ${RELEASE_CFLAGS} $< -MT ${@:%.d=%.o} > $@
+${WORKDIR}/%.o : ${LIBSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${CC} ${CINCLUDE} ${RELEASE_CFLAGS} -c -o $@ $<
+${WORKDIR}/%.o : ${BINSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${CC} ${CINCLUDE} ${RELEASE_CFLAGS} -c -o $@ $<
+# Debug versions
+${WORKDIR}/%.dd : ${LIBSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${MAKEDEPEND} ${CINCLUDE} ${DEBUG_CFLAGS} $< -MT ${@:%.d=%.do} > $@
+${WORKDIR}/%.do : ${LIBSRCDIR}/%.c
+	mkdir -p ${dir $@}
+	${CC} ${CINCLUDE} ${DEBUG_CFLAGS} -c -o $@ $<
+
+# Include header file dependencies
+-include ${ALL_DEPS}

Added: trunk/theora/win32/xmingw32/libtheoradec-all.def
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec-all.def	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec-all.def	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,58 @@
+EXPORTS
+; Old alpha API
+	theora_version_string
+	theora_version_number
+
+	theora_decode_header
+	theora_decode_init
+	theora_decode_packetin
+	theora_decode_YUVout
+
+	theora_control
+
+	theora_packet_isheader
+	theora_packet_iskeyframe
+
+	theora_granule_shift
+	theora_granule_frame
+	theora_granule_time
+
+	theora_info_init
+	theora_info_clear
+
+	theora_clear
+
+	theora_comment_init
+	theora_comment_add
+	theora_comment_add_tag
+	theora_comment_query
+	theora_comment_query_count
+	theora_comment_clear
+
+; New theora-exp API
+	th_version_string
+	th_version_number
+
+	th_decode_headerin
+	th_decode_alloc
+	th_setup_free
+	th_decode_ctl
+	th_decode_packetin
+	th_decode_ycbcr_out
+	th_decode_free
+
+	th_packet_isheader
+	th_packet_iskeyframe
+
+	th_granule_frame
+	th_granule_time
+
+	th_info_init
+	th_info_clear
+
+	th_comment_init
+	th_comment_add
+	th_comment_add_tag
+	th_comment_query
+	th_comment_query_count
+	th_comment_clear

Added: trunk/theora/win32/xmingw32/libtheoradec-all.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec-all.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec-all.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,39 @@
+#include <windows.h>
+
+/*See "VERSIONINFO Resource" in MSDN,
+  http://msdn2.microsoft.com/en-us/library/Aa381058.aspx */
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION TH_VERSION_FIELD
+PRODUCTVERSION TH_VERSION_FIELD
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+#if defined(_DEBUG)
+FILEFLAGS VS_FF_DEBUG
+#else
+FILEFLAGS 0
+#endif
+FILEOS VOS__WINDOWS32
+FILETYPE VFT_DLL
+FILESUBTYPE 0
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    /*0x040904B0 == US English, Unicode*/
+    BLOCK "0x040904B0"
+    BEGIN
+      VALUE "Comments","Xiph.Org " TH_DEC_INTERNAL_NAME ".dll"
+      VALUE "CompanyName","The Xiph.Org Foundation"
+      VALUE "FileDescription","Xiph.Org Theora Decoder Library"
+      VALUE "FileVersion",TH_VERSION_STRING
+      VALUE "InternalName",TH_DEC_INTERNAL_NAME
+      VALUE "LegalCopyright","Copyright (C) 2002-2007 Xiph.Org Foundation"
+      VALUE "OriginalFilename",TH_DEC_INTERNAL_NAME ".dll"
+      VALUE "ProductName","libtheora"
+      VALUE "ProductVersion",TH_VERSION_STRING
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+    /*0x0409, 1200 == US English, Unicode*/
+    VALUE "Translation",0x0409,1200
+  END
+END

Added: trunk/theora/win32/xmingw32/libtheoradec.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec"
+#undef _DEBUG
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec70.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec70.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec70.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec70"
+#undef _DEBUG
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec70d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec70d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec70d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec70d"
+#define _DEBUG (1)
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec71.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec71.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec71.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec71"
+#undef _DEBUG
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec71d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec71d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec71d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec71d"
+#define _DEBUG (1)
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec80.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec80.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec80.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec80"
+#undef _DEBUG
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradec80d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradec80d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradec80d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradec80d"
+#define _DEBUG (1)
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoradecd.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoradecd.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoradecd.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_DEC_INTERNAL_NAME "libtheoradecd"
+#define _DEBUG (1)
+#include "libtheoradec-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc-all.def
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc-all.def	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc-all.def	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,7 @@
+EXPORTS
+	theora_encode_init
+	theora_encode_YUVin
+	theora_encode_packetout
+	theora_encode_header
+	theora_encode_comment
+	theora_encode_tables

Added: trunk/theora/win32/xmingw32/libtheoraenc-all.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc-all.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc-all.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,39 @@
+#include <windows.h>
+
+/*See "VERSIONINFO Resource" in MSDN,
+  http://msdn2.microsoft.com/en-us/library/Aa381058.aspx */
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION TH_VERSION_FIELD
+PRODUCTVERSION TH_VERSION_FIELD
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+#if defined(_DEBUG)
+FILEFLAGS VS_FF_DEBUG
+#else
+FILEFLAGS 0
+#endif
+FILEOS VOS__WINDOWS32
+FILETYPE VFT_DLL
+FILESUBTYPE 0
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    /*0x040904B0 == US English, Unicode*/
+    BLOCK "0x040904B0"
+    BEGIN
+      VALUE "Comments","Xiph.Org " TH_ENC_INTERNAL_NAME ".dll"
+      VALUE "CompanyName","The Xiph.Org Foundation"
+      VALUE "FileDescription","Xiph.Org Theora Encoder Library"
+      VALUE "FileVersion",TH_VERSION_STRING
+      VALUE "InternalName",TH_ENC_INTERNAL_NAME
+      VALUE "LegalCopyright","Copyright (C) 2002-2007 Xiph.Org Foundation"
+      VALUE "OriginalFilename",TH_ENC_INTERNAL_NAME ".dll"
+      VALUE "ProductName","libtheora"
+      VALUE "ProductVersion",TH_VERSION_STRING
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+    /*0x0409, 1200 == US English, Unicode*/
+    VALUE "Translation",0x0409,1200
+  END
+END

Added: trunk/theora/win32/xmingw32/libtheoraenc.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc"
+#undef _DEBUG
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc70.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc70.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc70.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc70"
+#undef _DEBUG
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc70d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc70d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc70d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc70d"
+#define _DEBUG (1)
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc71.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc71.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc71.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc71"
+#undef _DEBUG
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc71d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc71d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc71d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc71d"
+#define _DEBUG (1)
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc80.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc80.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc80.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc80"
+#undef _DEBUG
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraenc80d.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraenc80d.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraenc80d.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraenc80d"
+#define _DEBUG (1)
+#include "libtheoraenc-all.rc"

Added: trunk/theora/win32/xmingw32/libtheoraencd.rc
===================================================================
--- trunk/theora/win32/xmingw32/libtheoraencd.rc	                        (rev 0)
+++ trunk/theora/win32/xmingw32/libtheoraencd.rc	2007-08-23 20:18:36 UTC (rev 13601)
@@ -0,0 +1,3 @@
+#define TH_ENC_INTERNAL_NAME "libtheoraencd"
+#define _DEBUG (1)
+#include "libtheoraenc-all.rc"



More information about the commits mailing list