[svn] / trunk / xvidcore / dshow / dxpatch / dx90sdk-update-gcc.txt Repository:
ViewVC logotype

Annotation of /trunk/xvidcore/dshow/dxpatch/dx90sdk-update-gcc.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1526 - (view) (download)

1 : suxen_drol 1521 directx 9.0 software development kit update (summer 2003)
2 : edgomez 1526 gnu c compiler compatibility patch
3 : suxen_drol 1521 ===============================================
4 :    
5 :     this patch has been tested with:
6 :     gcc v3.2.3
7 :     gcc v3.3.3
8 : edgomez 1526 gcc v3.4.1 (linux->win32 cross compiler)
9 : suxen_drol 1521 msc v6.0 + sp5 + pp
10 :    
11 : edgomez 1526 I) Applying the patch
12 :     ------------------
13 : suxen_drol 1521
14 : edgomez 1526 1. Install the directx sdk update to /c/DX90SDK (to match default
15 :     Makefile variable values) or to any other dir. From now on, the
16 :     sdk install directory will be called ${SDKDIR}.
17 :    
18 : suxen_drol 1521 dx90updatesdk.exe
19 :     size: 190,991,976 bytes
20 :     md5: ed328da4033e18124801265ee91f690e
21 :    
22 : edgomez 1526 2. cd ${SDKDIR}
23 :     3. patch -p0 --dry-run < /path/to/dx90sdk-update-gcc.patch
24 :     (if all goes well, no rejects... else read the special notes)
25 :     patch -p0 < /path/to/dx90sdk-update-gcc.patch
26 : suxen_drol 1521
27 :    
28 : edgomez 1526 --
29 :     Special notes for cross compilation on GNU/Linux systems (or any
30 :     supported platform for wine):
31 :     - You can install the DX SDK using the wine win32 API emulation
32 :     layer. The unzipping stage of the install will succeed, it's
33 :     all that is required to continue. So don't panic if the install
34 :     program breaks/crashes after the self unzip did succeed.
35 :     - Then depending on your cvs program, you may require to unix'ify
36 :     the endlines of all sources in the SDK before applying the patch.
37 :     That can be required CVS uses to expand/replace endlines according
38 :     to the host platform type, so it's very likely that if you do
39 :     extract the xvidcore sources from a windows box, this step isn't
40 :     mandatory, but if you're using a unix box (even cygwin), you may
41 :     be obliged to proceed with:
42 :     find ${SDKDIR} -name "*.cpp" -exec dos2unix {} \;
43 :     find ${SDKDIR} -name "*.h" -exec dos2unix {} \;
44 : suxen_drol 1521
45 : edgomez 1526 II) building strmbase.lib
46 :     -------------------------
47 : suxen_drol 1521
48 : edgomez 1526 1. cd ${SDKDIR}/Samples/C++/Directshow/BaseClasses
49 :     2. make
50 :     (this should output strmbase.lib)
51 :    
52 :     --
53 :     Special notes for people cross compiling, or people who installed
54 :     the SDK elsewhere than /c/DX90SDK:
55 :     - you can overide Makefile defaults in the make command line,
56 :     just use something like this command line (adapt according to
57 :     your build environment):
58 :     make \
59 :     CXX=/opt/mingw32-cross/bin/i386-mingw32-g++ \
60 :     RANLIB=/opt/mingw32-cross/bin/i386-mingw32-ranlib \
61 :     DXTREE=${SDKDIR}
62 :    
63 :    
64 :     III) Building your own apps
65 :     ---------------------------
66 :    
67 :     These variables should be defined in your Makefiles:
68 :    
69 :     DXTREE=${SDKTREE}
70 : suxen_drol 1521 DXBASECLASSES=$(DXTREE)/Samples/C++/DirectShow/BaseClasses
71 :     CXXFLAGS += -DRELEASE \
72 :     -I$(DXTREE)/Include \
73 :     -I$(DXBASECLASSES) \
74 :     -include $(DXTREE)/mingw_dshow_port.h
75 :     LDFLAGS += -L$(DXTREE)/Lib -lstrmiids \
76 :     $(DXBASECLASSES)/strmbase.lib \
77 :     -lole32 -loleaut32 -lstdc++
78 :    
79 : edgomez 1526 So it's now time to build the XviD Dshow filter (the xvidcore
80 :     source dir is supposed to be ${xvidcore}):
81 :    
82 :     1. cd ${xvidcore}/dshow
83 :     2. make
84 :     (should output a xvid.ax file in a =build dir by default)
85 :    
86 :     --
87 :     Notes for people using a cross compiler, or people who did install
88 :     the SDK elsewhere than /c/DX90SDK:
89 :     - you can overide Makefile variables from the make command line,
90 :     a fairly complete command could look like this, adapt to your
91 :     build environment:
92 :     make \
93 :     CC=/opt/mingw32-cross/bin/i386-mingw32-gcc \
94 :     CXX=/opt/mingw32-cross/bin/i386-mingw32-g++ \
95 :     WINDRES=/opt/mingw32-cross/bin/i386-mingw32-windres \
96 :     DXTREE=/mnt/data/windows/dx9sdk
97 :    
98 :     NB: with some win32-api headers from mingw.org, you may suffer
99 :     multiple QACONTAINERFLAGS definitions. In that case you need
100 :     to manually edit ${mingw_install}/include/ocidl.h; Search for
101 :     QACONTAINERFLAGS. It should look like this:
102 :    
103 :     enum tagQACONTAINERFLAGS
104 :     {
105 :     ...
106 :     } QACONTAINERFLAGS;
107 :    
108 :     Then change this to that:
109 :    
110 :     typedef enum tagQACONTAINERFLAGS
111 :     {
112 :     ...
113 :     } QACONTAINERFLAGS;
114 :    
115 :     Noticed the additional typedef ? that's the point !

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4