1###############################################################################
2# Makefile for GX demos
3#
4# Copyright 1998 - 2006 Nintendo.  All rights reserved.
5#
6# These coded instructions, statements, and computer programs contain
7# proprietary information of Nintendo of America Inc. and/or Nintendo
8# Company Ltd., and are protected by Federal copyright law.  They may
9# not be disclosed to third parties or copied or duplicated in any form,
10# in whole or in part, without the prior written consent of Nintendo.
11#
12###############################################################################
13
14##################################
15# QUICK START INSTRUCTIONS
16# Type "make" at /dolphin/build/tests/gx to build DEBUG versions of all tests.
17# Type "make NDEBUG=TRUE" to build OPTIMIZED versions of all tests
18# Type "make lit-basicD.bin" to build DEBUG version of just lit-basic
19# Type "make NDEBUG=TRUE lit-basic.bin" to build OPTIMIZED version of
20# just lit-basic
21#
22# To add another test
23# 1. add the .c files to CSRCS to make sure they are built
24# 2. add the binary name (no suffix) to BINNAMES
25# 3. add a dependency rule for this executable at the bottom of this file
26##################################
27
28
29# All modules have "setup" and "build" as targets.  System libraries
30# and demo programs also have an "install" target that copies the compiled
31# binaries to the binary tree (/dolphin/$(ARCH_TARGET)).
32# tests are NOT installed into the binary release directory.
33all:
34	$(MAKE) setup
35	$(MAKE) build
36	$(MAKE) install
37
38# module name should be set to the name of this subdirectory
39# DEMO = TRUE indicates that this module resides under the "demos" subtree.
40# The list of selectable paths can be found in modulerules.
41MODULENAME  = gxdemo
42DEMO        = TRUE
43
44
45# commondefs must be included near the top so that all common variables
46# will be defined before their use.
47include $(REVOLUTION_SDK_ROOT)/build/buildtools/commondefs
48
49
50# additional libraries not defined as REVOLUTION_LIBS
51TPL_LIB     = $(INSTALL_ROOT)/lib/tpl$(LIBSUFFIX)
52G2D_LIB     = $(INSTALL_ROOT)/lib/G2D$(LIBSUFFIX)
53
54
55# CSRCS lists all C files that should be built
56# The makefile determines which objects are linked into which binaries
57# based on the dependencies you fill in at the bottom of this file
58CSRCS = \
59        Culling/cul-faces.c      Culling/cul-viewport.c \
60        \
61        DisplayList/DL-geom.c    DisplayList/DL-tex.c \
62        DisplayList/DL-tf-mtx.c  \
63        \
64        Framebuffer/frb-bound-box.c   \
65        Framebuffer/frb-copy.c        \
66        Framebuffer/frb-fld-dbs.c     \
67        Framebuffer/frb-fld-dbs-aa.c  \
68        Framebuffer/frb-fld-int.c     \
69        Framebuffer/frb-fld-int-aa.c  \
70        Framebuffer/frb-aa-full.c     \
71        Framebuffer/frb-zcopy.c       \
72        Framebuffer/frb-gamma.c       \
73        Framebuffer/frb-vfilter.c \
74        \
75        G2D/G2D-test.c           G2D/G2D-testEditor.c \
76        G2D/G2D-testPhy.c        G2D/G2D-testLevel1.c \
77        \
78        Geometry/geo-particle.c  \
79        Geometry/geo-vtx-fmt.c   Geometry/geo-vtx-fmtPrim.c \
80        \
81        Indirect/ind-bump-st.c   Indirect/ind-bump-xyz.c \
82        Indirect/ind-tile-data.c Indirect/ind-tile-test.c \
83        Indirect/ind-pseudo-3d.c Indirect/ind-warp.c     \
84        \
85        Lighting/lit-basic.c     Lighting/lit-multi.c    \
86        Lighting/lit-alpha.c     Lighting/lit-spot.c     \
87        Lighting/lit-dist-atn.c  Lighting/lit-unclamp.c  \
88        Lighting/lit-cartoon.c   Lighting/lit-texture.c  \
89        Lighting/lit-tx-alpha.c  Lighting/lit-prelit.c   \
90        Lighting/lit-atn-func.c  Lighting/lit-specular.c \
91        \
92        Performance/perf-fill.c  \
93        Performance/perf-geo.c   \
94        Performance/perf-sync.c  \
95        \
96        PixelProc/cmn-model.c    PixelProc/pix-fog.c    \
97        PixelProc/pix-blend.c    PixelProc/pix-logic.c  \
98        PixelProc/pix-z-comp.c   PixelProc/pix-a-comp.c \
99        PixelProc/pix-sub.c      \
100        \
101        Simple/smp-onetri.c      Simple/smp-onetri_dl.c \
102        Simple/smp-toy-draw.c    \
103        Simple/smp-toy-anim.c    Simple/smp-toy-stick.c \
104        Simple/smp-texexample.c  Simple/smp-octa.c \
105        Simple/smp-light.c       \
106        \
107        Tev/tev-one-op.c         Tev/tev-multi.c \
108        Tev/tev-complex.c        Tev/tev-outline.c \
109        Tev/tev-ztex.c           Tev/tev-swap.c    \
110        \
111        TexGen/tg-basic.c        TexGen/tg-project.c  \
112        TexGen/tg-emboss.c       TexGen/tg-shadow.c   \
113        TexGen/tg-shadow2.c      TexGen/tg-shadow3.c  \
114        TexGen/tg-light-fx.c     TexGen/tg-dual.c         \
115        TexGen/spheremap.c       TexGen/tg-spheremap.c    \
116        TexGen/parabolicmap.c    TexGen/tg-parabolicmap.c \
117        TexGen/tg-clr-persp.c \
118        \
119        Texture/tex-fmt-cube.c   Texture/tex-fmt-cubeData.c \
120        Texture/tex-filter.c     Texture/tex-fmt-tpl.c      \
121        Texture/tex-wrap.c       Texture/tex-tlut.c         \
122        Texture/tex-tlutData.c   Texture/tex-layer.c        \
123        Texture/tex-2-tex.c      Texture/tex-tc-alloc.c     \
124        Texture/tex-preload.c    Texture/tex-mix-mode.c     \
125        Texture/tex-invalid.c    Texture/tex-lod.c          \
126        Texture/tex-tlut32.c \
127        \
128        Transform/tf-pn-mtx.c    Transform/tf-stitch.c \
129        Transform/tf-tg-mtx.c    Transform/tf-mirror.c \
130        Transform/tf-reflect.c   Transform/tf-clip-bug.c \
131        \
132        Management/mgt-single-buf.c \
133        Management/mgt-triple-buf.c \
134        Management/mgt-fifo-brkpt.c \
135        Management/mgt-fifo-dual.c
136
137
138# BINNAMES lists all binaries that will be linked.  Note that no suffix is
139# required, as that will depend on whether this is a DEBUG build or not.
140# The final name of the binaries will be $(BINNAME)$(BINSUFFIX)
141BINNAMES =  \
142        cul-faces       cul-viewport    \
143        \
144        DL-geom         DL-tex          DL-tf-mtx       \
145        \
146        frb-bound-box   frb-copy        \
147        frb-fld-dbs     frb-fld-dbs-aa  frb-fld-int     frb-fld-int-aa  \
148        frb-aa-full     frb-zcopy       frb-gamma       frb-vfilter     \
149        \
150        G2D-test        \
151        \
152        geo-particle    geo-vtx-fmt     \
153        \
154        ind-bump-st     ind-bump-xyz    ind-tile-test   ind-pseudo-3d   \
155        ind-warp        \
156        \
157        lit-basic       lit-multi       lit-alpha       lit-spot        \
158        lit-dist-atn    lit-unclamp     lit-cartoon     lit-texture     \
159        lit-tx-alpha    lit-prelit      lit-atn-func    lit-specular    \
160        \
161        perf-fill       perf-geo        perf-sync       \
162        \
163        pix-fog         pix-sub         \
164        pix-blend       pix-logic       pix-z-comp      pix-a-comp      \
165        \
166        smp-onetri      smp-onetri_dl   smp-toy         \
167        smp-texexample  smp-octa        smp-light       \
168        \
169        tev-one-op      tev-multi       tev-complex     \
170        tev-outline     tev-ztex        tev-swap        \
171        \
172        tg-basic        tg-project      tg-emboss       tg-shadow       \
173        tg-shadow2      tg-shadow3      tg-light-fx     tg-dual         \
174        tg-spheremap    tg-parabolicmap tg-clr-persp    \
175        \
176        tex-fmt-cube    tex-filter      tex-fmt-tpl     tex-wrap        \
177        tex-tlut        tex-layer       tex-2-tex       tex-tc-alloc    \
178        tex-preload     tex-mix-mode    tex-invalid     tex-lod         \
179        tex-tlut32      \
180        \
181        tf-pn-mtx       tf-stitch       tf-tg-mtx       tf-mirror       \
182        tf-reflect      tf-clip-bug     \
183        \
184        mgt-single-buf  mgt-triple-buf  mgt-fifo-brkpt  mgt-fifo-dual
185
186
187# defining a linker command file will have the build system generate it
188# automatically and include it on the linker invocation line
189
190LCF_FILE    = $(INC_ROOT)/revolution/eppc.$(ARCH_TARGET).lcf
191
192# Use MEM libarary for memory allocation (DEMO library setting)
193CCFLAGS += -DDEMO_USE_MEMLIB
194
195ifdef WALL
196CCFLAGS +=  -w all
197endif
198
199# modulerules contains the rules that will use the above variables
200# and dependencies below to construct the binaries specified.
201include $(REVOLUTION_SDK_ROOT)/build/buildtools/modulerules
202
203# Dependencies for the binaries listed in BINNAMES should come here
204# They are your typical makefile rule, with extra variables to ensure
205# that the names and paths match up.
206# $(FULLBIN_ROOT) is the location of the local bin directory
207# $(BINSUFFIX) depends on whether this is a debug build or not
208# $(REVOLUTION_LIBS) includes all the Dolphin libraries.
209$(FULLBIN_ROOT)/cul-faces$(BINSUFFIX): Culling/cul-faces.o \
210                    $(REVOLUTION_LIBS)
211
212$(FULLBIN_ROOT)/cul-viewport$(BINSUFFIX): Culling/cul-viewport.o \
213                    $(REVOLUTION_LIBS)
214
215$(FULLBIN_ROOT)/DL-geom$(BINSUFFIX):  DisplayList/DL-geom.o \
216                    $(REVOLUTION_LIBS) $(TPL_LIB)
217
218$(FULLBIN_ROOT)/DL-tex$(BINSUFFIX):  DisplayList/DL-tex.o \
219                    $(REVOLUTION_LIBS) $(TPL_LIB)
220
221$(FULLBIN_ROOT)/DL-tf-mtx$(BINSUFFIX):  DisplayList/DL-tf-mtx.o \
222                    $(REVOLUTION_LIBS) $(TPL_LIB)
223
224$(FULLBIN_ROOT)/frb-copy$(BINSUFFIX): Framebuffer/frb-copy.o \
225                    $(REVOLUTION_LIBS)
226
227$(FULLBIN_ROOT)/frb-zcopy$(BINSUFFIX): Framebuffer/frb-zcopy.o \
228                    $(REVOLUTION_LIBS)
229
230$(FULLBIN_ROOT)/frb-fld-int$(BINSUFFIX): Framebuffer/frb-fld-int.o \
231                    $(REVOLUTION_LIBS)
232
233$(FULLBIN_ROOT)/frb-fld-dbs$(BINSUFFIX): Framebuffer/frb-fld-dbs.o \
234                    $(REVOLUTION_LIBS)
235
236$(FULLBIN_ROOT)/frb-fld-int-aa$(BINSUFFIX): Framebuffer/frb-fld-int-aa.o \
237                    $(REVOLUTION_LIBS)
238
239$(FULLBIN_ROOT)/frb-fld-dbs-aa$(BINSUFFIX): Framebuffer/frb-fld-dbs-aa.o \
240                    $(REVOLUTION_LIBS)
241
242$(FULLBIN_ROOT)/frb-aa-full$(BINSUFFIX): Framebuffer/frb-aa-full.o \
243                    $(REVOLUTION_LIBS)
244
245$(FULLBIN_ROOT)/frb-bound-box$(BINSUFFIX): Framebuffer/frb-bound-box.o \
246                    $(REVOLUTION_LIBS)
247
248$(FULLBIN_ROOT)/frb-gamma$(BINSUFFIX): Framebuffer/frb-gamma.o \
249                    $(REVOLUTION_LIBS) $(TPL_LIB)
250
251$(FULLBIN_ROOT)/frb-vfilter$(BINSUFFIX): Framebuffer/frb-vfilter.o \
252                    $(REVOLUTION_LIBS) $(TPL_LIB)
253
254$(FULLBIN_ROOT)/G2D-test$(BINSUFFIX): G2D/G2D-test.o \
255                    G2D/G2D-testPhy.o \
256                    G2D/G2D-testLevel1.o \
257                    G2D/G2D-testEditor.o \
258                    $(G2D_LIB) \
259                    $(REVOLUTION_LIBS) \
260                    $(TPL_LIB)
261
262$(FULLBIN_ROOT)/geo-particle$(BINSUFFIX): Geometry/geo-particle.o \
263                    $(REVOLUTION_LIBS) $(TPL_LIB)
264
265$(FULLBIN_ROOT)/geo-vtx-fmt$(BINSUFFIX): Geometry/geo-vtx-fmt.o \
266                    Geometry/geo-vtx-fmtPrim.o \
267                    $(REVOLUTION_LIBS) $(TPL_LIB)
268
269$(FULLBIN_ROOT)/ind-bump-st$(BINSUFFIX): Indirect/ind-bump-st.o \
270                    $(REVOLUTION_LIBS) $(TPL_LIB)
271
272$(FULLBIN_ROOT)/ind-bump-xyz$(BINSUFFIX): Indirect/ind-bump-xyz.o \
273                    $(REVOLUTION_LIBS) $(TPL_LIB)
274
275$(FULLBIN_ROOT)/ind-tile-test$(BINSUFFIX): Indirect/ind-tile-test.o Indirect/ind-tile-data.o \
276                    $(REVOLUTION_LIBS) $(TPL_LIB)
277
278$(FULLBIN_ROOT)/ind-pseudo-3d$(BINSUFFIX): Indirect/ind-pseudo-3d.o \
279                    $(REVOLUTION_LIBS) $(TPL_LIB)
280
281$(FULLBIN_ROOT)/ind-warp$(BINSUFFIX): Indirect/ind-warp.o \
282                    $(REVOLUTION_LIBS) $(TPL_LIB)
283
284$(FULLBIN_ROOT)/lit-basic$(BINSUFFIX): Lighting/lit-basic.o \
285                    $(REVOLUTION_LIBS)
286
287$(FULLBIN_ROOT)/lit-multi$(BINSUFFIX): Lighting/lit-multi.o \
288                    $(REVOLUTION_LIBS)
289
290$(FULLBIN_ROOT)/lit-alpha$(BINSUFFIX): Lighting/lit-alpha.o \
291                    $(REVOLUTION_LIBS)
292
293$(FULLBIN_ROOT)/lit-spot$(BINSUFFIX): Lighting/lit-spot.o \
294                    $(REVOLUTION_LIBS)
295
296$(FULLBIN_ROOT)/lit-dist-atn$(BINSUFFIX): Lighting/lit-dist-atn.o \
297                    $(REVOLUTION_LIBS)
298
299$(FULLBIN_ROOT)/lit-unclamp$(BINSUFFIX): Lighting/lit-unclamp.o \
300                    $(REVOLUTION_LIBS)
301
302$(FULLBIN_ROOT)/lit-cartoon$(BINSUFFIX): Lighting/lit-cartoon.o \
303                    $(REVOLUTION_LIBS) $(TPL_LIB)
304
305$(FULLBIN_ROOT)/lit-texture$(BINSUFFIX): Lighting/lit-texture.o \
306                    $(REVOLUTION_LIBS)
307
308$(FULLBIN_ROOT)/lit-tx-alpha$(BINSUFFIX): Lighting/lit-tx-alpha.o \
309                    $(REVOLUTION_LIBS) $(TPL_LIB)
310
311$(FULLBIN_ROOT)/lit-prelit$(BINSUFFIX): Lighting/lit-prelit.o \
312                    $(REVOLUTION_LIBS)
313
314$(FULLBIN_ROOT)/lit-atn-func$(BINSUFFIX): Lighting/lit-atn-func.o \
315                    $(REVOLUTION_LIBS) $(TPL_LIB)
316
317$(FULLBIN_ROOT)/lit-specular$(BINSUFFIX): Lighting/lit-specular.o \
318                    $(REVOLUTION_LIBS)
319
320$(FULLBIN_ROOT)/perf-fill$(BINSUFFIX): Performance/perf-fill.o \
321                    $(REVOLUTION_LIBS) $(TPL_LIB)
322
323$(FULLBIN_ROOT)/perf-sync$(BINSUFFIX): Performance/perf-sync.o \
324                    $(REVOLUTION_LIBS)
325
326$(FULLBIN_ROOT)/perf-geo$(BINSUFFIX): Performance/perf-geo.o \
327                    $(REVOLUTION_LIBS) $(TPL_LIB)
328
329$(FULLBIN_ROOT)/pix-fog$(BINSUFFIX): PixelProc/pix-fog.o \
330                    PixelProc/cmn-model.o $(REVOLUTION_LIBS)
331
332$(FULLBIN_ROOT)/pix-blend$(BINSUFFIX): PixelProc/pix-blend.o \
333                    PixelProc/cmn-model.o $(REVOLUTION_LIBS)
334
335$(FULLBIN_ROOT)/pix-logic$(BINSUFFIX): PixelProc/pix-logic.o \
336                    PixelProc/cmn-model.o $(REVOLUTION_LIBS)
337
338$(FULLBIN_ROOT)/pix-z-comp$(BINSUFFIX): PixelProc/pix-z-comp.o \
339                    PixelProc/cmn-model.o $(REVOLUTION_LIBS)
340
341$(FULLBIN_ROOT)/pix-a-comp$(BINSUFFIX): PixelProc/pix-a-comp.o \
342                    PixelProc/cmn-model.o $(REVOLUTION_LIBS)
343
344$(FULLBIN_ROOT)/pix-sub$(BINSUFFIX): PixelProc/pix-sub.o \
345                    $(REVOLUTION_LIBS) $(TPL_LIB)
346
347$(FULLBIN_ROOT)/smp-onetri$(BINSUFFIX): Simple/smp-onetri.o \
348                    $(REVOLUTION_LIBS)
349
350$(FULLBIN_ROOT)/smp-onetri_dl$(BINSUFFIX): Simple/smp-onetri_dl.o \
351                    $(REVOLUTION_LIBS)
352
353$(FULLBIN_ROOT)/smp-toy$(BINSUFFIX): Simple/smp-toy-draw.o \
354                    Simple/smp-toy-anim.o Simple/smp-toy-stick.o \
355                    $(REVOLUTION_LIBS) $(TPL_LIB)
356
357$(FULLBIN_ROOT)/smp-texexample$(BINSUFFIX): Simple/smp-texexample.o \
358                    $(REVOLUTION_LIBS) $(TPL_LIB)
359
360$(FULLBIN_ROOT)/smp-octa$(BINSUFFIX): Simple/smp-octa.o \
361                    $(REVOLUTION_LIBS)
362
363$(FULLBIN_ROOT)/smp-light$(BINSUFFIX): Simple/smp-light.o \
364                    $(REVOLUTION_LIBS)
365
366$(FULLBIN_ROOT)/tev-one-op$(BINSUFFIX): Tev/tev-one-op.o \
367                    $(REVOLUTION_LIBS) $(TPL_LIB)
368
369$(FULLBIN_ROOT)/tev-swap$(BINSUFFIX): Tev/tev-swap.o \
370                    $(REVOLUTION_LIBS) $(TPL_LIB)
371
372$(FULLBIN_ROOT)/tev-multi$(BINSUFFIX): Tev/tev-multi.o \
373                    $(REVOLUTION_LIBS) $(TPL_LIB)
374
375$(FULLBIN_ROOT)/tev-complex$(BINSUFFIX): Tev/tev-complex.o \
376                    $(REVOLUTION_LIBS) $(TPL_LIB)
377
378$(FULLBIN_ROOT)/tev-outline$(BINSUFFIX): Tev/tev-outline.o \
379                    $(REVOLUTION_LIBS)
380
381$(FULLBIN_ROOT)/tev-ztex$(BINSUFFIX): Tev/tev-ztex.o \
382                    $(REVOLUTION_LIBS) $(TPL_LIB)
383
384$(FULLBIN_ROOT)/tg-basic$(BINSUFFIX):  TexGen/tg-basic.o \
385                    $(REVOLUTION_LIBS) $(TPL_LIB)
386
387$(FULLBIN_ROOT)/tg-project$(BINSUFFIX):  TexGen/tg-project.o \
388                    $(REVOLUTION_LIBS) $(TPL_LIB)
389
390$(FULLBIN_ROOT)/tg-emboss$(BINSUFFIX):  TexGen/tg-emboss.o \
391                    $(REVOLUTION_LIBS) $(TPL_LIB)
392
393$(FULLBIN_ROOT)/tg-shadow$(BINSUFFIX):  TexGen/tg-shadow.o \
394                    $(REVOLUTION_LIBS) $(TPL_LIB)
395
396$(FULLBIN_ROOT)/tg-shadow2$(BINSUFFIX):  TexGen/tg-shadow2.o \
397                    $(REVOLUTION_LIBS)
398
399$(FULLBIN_ROOT)/tg-shadow3$(BINSUFFIX):  TexGen/tg-shadow3.o \
400                    $(REVOLUTION_LIBS)
401
402$(FULLBIN_ROOT)/tg-spheremap$(BINSUFFIX):  TexGen/tg-spheremap.o \
403                    TexGen/spheremap.o $(REVOLUTION_LIBS) $(TPL_LIB)
404
405$(FULLBIN_ROOT)/tg-parabolicmap$(BINSUFFIX):  TexGen/tg-parabolicmap.o \
406                    TexGen/parabolicmap.o $(REVOLUTION_LIBS) $(TPL_LIB)
407
408$(FULLBIN_ROOT)/tg-light-fx$(BINSUFFIX):  TexGen/tg-light-fx.o \
409                    $(REVOLUTION_LIBS)
410
411$(FULLBIN_ROOT)/tg-dual$(BINSUFFIX):  TexGen/tg-dual.o \
412                    $(REVOLUTION_LIBS) $(TPL_LIB)
413
414$(FULLBIN_ROOT)/tg-clr-persp$(BINSUFFIX):  TexGen/tg-clr-persp.o \
415                    $(REVOLUTION_LIBS) $(TPL_LIB)
416
417$(FULLBIN_ROOT)/tex-fmt-cube$(BINSUFFIX): Texture/tex-fmt-cube.o \
418                    Texture/tex-fmt-cubeData.o $(REVOLUTION_LIBS)
419
420$(FULLBIN_ROOT)/tex-filter$(BINSUFFIX): Texture/tex-filter.o \
421                    $(REVOLUTION_LIBS) $(TPL_LIB)
422
423$(FULLBIN_ROOT)/tex-fmt-tpl$(BINSUFFIX): Texture/tex-fmt-tpl.o \
424                    $(REVOLUTION_LIBS) $(TPL_LIB)
425
426$(FULLBIN_ROOT)/tex-wrap$(BINSUFFIX): Texture/tex-wrap.o \
427                    $(REVOLUTION_LIBS) $(TPL_LIB)
428
429$(FULLBIN_ROOT)/tex-tlut$(BINSUFFIX): Texture/tex-tlut.o \
430                    Texture/tex-tlutData.o $(REVOLUTION_LIBS)
431
432$(FULLBIN_ROOT)/tex-tlut32$(BINSUFFIX): Texture/tex-tlut32.o \
433                    $(REVOLUTION_LIBS)
434
435$(FULLBIN_ROOT)/tex-layer$(BINSUFFIX): Texture/tex-layer.o \
436                    $(REVOLUTION_LIBS) $(TPL_LIB)
437
438$(FULLBIN_ROOT)/tex-2-tex$(BINSUFFIX): Texture/tex-2-tex.o \
439                    $(REVOLUTION_LIBS) $(TPL_LIB)
440
441$(FULLBIN_ROOT)/tex-tc-alloc$(BINSUFFIX): Texture/tex-tc-alloc.o \
442                    $(REVOLUTION_LIBS) $(TPL_LIB)
443
444$(FULLBIN_ROOT)/tex-preload$(BINSUFFIX): Texture/tex-preload.o \
445                    $(REVOLUTION_LIBS) $(TPL_LIB)
446
447$(FULLBIN_ROOT)/tex-mix-mode$(BINSUFFIX): Texture/tex-mix-mode.o \
448                    $(REVOLUTION_LIBS) $(TPL_LIB)
449
450$(FULLBIN_ROOT)/tex-invalid$(BINSUFFIX): Texture/tex-invalid.o \
451                    $(REVOLUTION_LIBS) $(TPL_LIB)
452
453$(FULLBIN_ROOT)/tex-lod$(BINSUFFIX): Texture/tex-lod.o \
454                    $(REVOLUTION_LIBS) $(TPL_LIB)
455
456$(FULLBIN_ROOT)/tf-pn-mtx$(BINSUFFIX):  Transform/tf-pn-mtx.o \
457                    $(REVOLUTION_LIBS)
458
459$(FULLBIN_ROOT)/tf-stitch$(BINSUFFIX):  Transform/tf-stitch.o \
460                    $(REVOLUTION_LIBS)
461
462$(FULLBIN_ROOT)/tf-tg-mtx$(BINSUFFIX):  Transform/tf-tg-mtx.o \
463                    $(REVOLUTION_LIBS) $(TPL_LIB)
464
465$(FULLBIN_ROOT)/tf-mirror$(BINSUFFIX):  Transform/tf-mirror.o \
466                    $(REVOLUTION_LIBS) $(TPL_LIB)
467
468$(FULLBIN_ROOT)/tf-reflect$(BINSUFFIX):  Transform/tf-reflect.o \
469                    $(REVOLUTION_LIBS) $(TPL_LIB)
470
471$(FULLBIN_ROOT)/tf-clip-bug$(BINSUFFIX):  Transform/tf-clip-bug.o \
472                    $(REVOLUTION_LIBS)
473
474$(FULLBIN_ROOT)/mgt-single-buf$(BINSUFFIX): Management/mgt-single-buf.o \
475                    $(REVOLUTION_LIBS)
476
477$(FULLBIN_ROOT)/mgt-triple-buf$(BINSUFFIX): Management/mgt-triple-buf.o \
478                    $(REVOLUTION_LIBS)
479
480$(FULLBIN_ROOT)/mgt-fifo-brkpt$(BINSUFFIX): Management/mgt-fifo-brkpt.o \
481                    $(REVOLUTION_LIBS) $(TPL_LIB)
482
483$(FULLBIN_ROOT)/mgt-fifo-dual$(BINSUFFIX): Management/mgt-fifo-dual.o \
484                    $(REVOLUTION_LIBS)
485
486#======== End of makefile ========#
487