1#
2# OpenBOR - http://www.LavaLit.com
3# ---------------------------------------------------------------------------------------------------
4# All rights reserved, see LICENSE in OpenBOR root for details.
5#
6# Copyright (c) 2004 - 2012 OpenBOR Team
7#
8
9#----------------------------------------------------------------------------------------------------
10#
11#               	OpenBOR Makefile for ALL TARGET_PLATFORMs
12#
13#             PSP, PS3, Wii, Dreamcast, GP2X, WIZ, Pandora, OpenDingux, Windows, Darwin & Linux
14#
15#----------------------------------------------------------------------------------------------------
16
17ifndef VERSION_NAME
18VERSION_NAME = OpenBOR
19endif
20
21#----------------------------------------------------------------------------------------------------
22# Defines
23#----------------------------------------------------------------------------------------------------
24
25
26ifdef BUILD_PSP
27TARGET          = $(VERSION_NAME)
28TARGET_FINAL    = EBOOT.PBP
29TARGET_PLATFORM = PSP
30PBPNAME_STR     = $(TARGET)
31BUILD_TREMOR    = 1
32BUILDING        = 1
33ifeq ($(BUILD_PSP), 0)
34BUILD_DEBUG     = 1
35endif
36endif
37
38
39ifdef BUILD_WIN
40TARGET          = $(VERSION_NAME).elf
41TARGET_FINAL    = $(VERSION_NAME).exe
42TARGET_PLATFORM = WIN
43TARGET_ARCH     = x86
44TARGET_RESOURCE = resources/$(VERSION_NAME).res
45OBJTYPE         = win32
46BUILD_SDL       = 1
47BUILD_GFX       = 1
48BUILD_STATIC    = 1
49BUILD_SDL_IO    = 1
50BUILD_OPENGL    = 1
51BUILD_LOADGL    = 1
52BUILD_VORBIS    = 1
53BUILDING        = 1
54YASM 	        = yasm$(EXTENSION)
55CC              = $(WINDEV)/$(PREFIX)gcc$(EXTENSION)
56INCLUDES        = $(SDKPATH)/include \
57                  $(SDKPATH)/include/SDL
58LIBRARIES       = $(SDKPATH)/lib
59ARCHFLAGS       = -m32
60ifeq ($(findstring 86, $(TARGET_ARCH)), 86)
61BUILD_MMX       = 1
62endif
63ifeq ($(BUILD_WIN), 0)
64BUILD_DEBUG     = 1
65endif
66endif
67
68
69ifdef BUILD_LINUX
70TARGET 	        = $(VERSION_NAME).elf
71TARGET_FINAL    = $(VERSION_NAME)
72TARGET_PLATFORM = LINUX
73BUILD_SDL       = 1
74BUILD_GFX       = 1
75BUILD_PTHREAD   = 1
76BUILD_SDL_IO    = 1
77BUILD_OPENGL    = 1
78BUILD_LOADGL    = 1
79BUILD_VORBIS    = 1
80BUILDING        = 1
81YASM 	        = yasm
82CC  	        = $(LNXDEV)/$(PREFIX)gcc
83OBJTYPE         = elf
84INCLUDES        = $(SDKPATH)/include \
85                  $(SDKPATH)/include/SDL
86ifeq ($(findstring 64, $(TARGET_ARCH)), 64)
87BUILD_AMD64     = 1
88ARCHFLAGS       = -m64
89LIBRARIES       = $(SDKPATH)/lib64
90CFLAGS          += -DAMD64
91else
92ARCHFLAGS       = -m32
93LIBRARIES       = $(SDKPATH)/lib32
94endif
95ifeq ($(findstring 86, $(TARGET_ARCH)), 86)
96BUILD_MMX       = 1
97endif
98ifeq ($(BUILD_LINUX), 0)
99BUILD_DEBUG     = 1
100endif
101endif
102
103ifdef BUILD_DARWIN
104TARGET          = $(VERSION_NAME).elf
105TARGET_FINAL    = $(VERSION_NAME)
106TARGET_PLATFORM = DARWIN
107BUILD_SDL       = 1
108BUILD_GFX       = 1
109BUILD_LINUX     = 1
110BUILD_PTHREAD   = 1
111BUILD_SDL_IO    = 1
112BUILD_OPENGL    = 1
113BUILD_LOADGL    = 1
114BUILD_VORBIS    = 1
115BUILDING        = 1
116YASM            = yasm
117CC              = $(PREFIX)gcc
118OBJTYPE         = macho
119INCLUDES        = $(DWNDEV)/include \
120                  $(DWNDEV)/include/SDL \
121                  $(SDKPATH)/usr/include/malloc
122LIBRARIES       = $(DWNDEV)/lib
123ifeq ($(findstring darwin10, $(PREFIX)), darwin10)
124ARCHFLAGS       = -arch i386 -arch x86_64
125else
126BUILD_MMX       = 1
127TARGET_ARCH     = x86
128ARCHFLAGS       = -arch i386
129endif
130ifeq ($(BUILD_DARWIN), 0)
131BUILD_DEBUG     = 1
132endif
133endif
134
135ifdef BUILD_PANDORA
136TARGET 	        = $(VERSION_NAME).elf
137TARGET_FINAL    = $(VERSION_NAME)
138TARGET_PLATFORM = PANDORA
139BUILD_LINUX     = 1
140BUILD_SDL       = 1
141BUILD_GFX       = 1
142BUILD_PTHREAD   = 1
143BUILD_SDL_IO    = 1
144BUILD_TREMOR    = 1
145BUILDING        = 1
146CC  	        = $(PNDDEV)/bin/arm-none-linux-gnueabi-gcc
147INCLUDES        = $(PNDDEV)/include \
148                  $(PNDDEV)/include/SDL
149OBJTYPE         = elf
150LIBRARIES       = $(PNDDEV)/lib
151ifeq ($(BUILD_PANDORA), 0)
152BUILD_DEBUG     = 1
153endif
154endif
155
156ifdef BUILD_GP2X
157TARGET 	        = $(VERSION_NAME).elf
158TARGET_FINAL    = $(VERSION_NAME).gpe
159TARGET_PLATFORM = GP2X
160BUILD_SDL       = 1
161BUILD_GFX       = 1
162BUILD_STATIC    = 1
163BUILD_PTHREAD   = 1
164BUILD_SDL_IO    = 1
165BUILD_TREMOR    = 1
166BUILDING        = 1
167CC              = $(GP2XDEV)/arm-open2x-linux-gcc
168UNAME          := $(shell uname)
169INCLUDES        = $(SDKPATH)/include \
170                  $(SDKPATH)/include/SDL
171LIBRARIES       = $(SDKPATH)/lib
172ifeq ($(BUILD_GP2X), 0)
173BUILD_DEBUG     = 1
174endif
175endif
176
177ifdef BUILD_WIZ
178TARGET 	        = $(VERSION_NAME).elf
179TARGET_FINAL    = $(VERSION_NAME).gpe
180TARGET_PLATFORM = WIZ
181BUILD_SDL       = 1
182BUILD_GFX       = 1
183BUILD_PTHREAD   = 1
184BUILD_SDL_IO    = 1
185BUILD_TREMOR    = 1
186BUILDING        = 1
187CC              = $(WIZDEV)/$(PREFIX)gcc$(EXTENSION)
188UNAME          := $(shell uname)
189INCLUDES        = $(SDKPATH)/include \
190                  $(SDKPATH)/include/SDL
191LIBRARIES       = $(SDKPATH)/lib
192ifeq ($(findstring wiz-sdk, $(SDKPATH)), wiz-sdk)
193INCLUDES       += $(SDKPATH)/../include
194LIBRARIES      += $(SDKPATH)/../lib/target \
195                  $(SDKPATH)/lib/target
196endif
197ifeq ($(BUILD_WIZ), 0)
198BUILD_DEBUG     = 1
199endif
200endif
201
202ifdef BUILD_OPENDINGUX
203TARGET 	        = $(VERSION_NAME).elf
204TARGET_FINAL    = $(VERSION_NAME).dge
205TARGET_PLATFORM = OPENDINGUX
206BUILD_SDL       = 1
207BUILD_GFX       = 1
208BUILD_PTHREAD   = 1
209BUILD_SDL_IO    = 1
210BUILD_TREMOR    = 1
211BUILDING        = 1
212CC              = $(OPENDINGUX_TOOLCHAIN_PREFIX)/bin/mipsel-linux-gcc
213INCLUDES        = $(OPENDINGUX_TOOLCHAIN_PREFIX)/include \
214                  $(OPENDINGUX_TOOLCHAIN_PREFIX)/include/SDL
215LIBRARIES       = $(OPENDINGUX_TOOLCHAIN_PREFIX)/lib
216ifeq ($(BUILD_OPENDINGUX), 0)
217BUILD_DEBUG     = 1
218endif
219endif
220
221ifdef BUILD_DC
222TARGET 	        = $(VERSION_NAME).elf
223TARGET_FINAL    = 1ST_READ.BIN
224TARGET_PLATFORM = DC
225BUILDING        = 1
226INCLUDES        = $(KOS_BASE)/../kos-ports/include/SDL \
227                  $(KOS_BASE)/../kos-ports/include/SDL-1.2.9 \
228                  $(KOS_BASE)/../kos-ports/include/png \
229                  $(KOS_BASE)/../kos-ports/include/zlib \
230                  $(KOS_BASE)/../kos-ports/include/liboggvorbis \
231                  $(KOS_BASE)/../kos-ports/libtremor/xiph
232ifeq ($(BUILD_DC), 0)
233BUILD_DEBUG     = 1
234endif
235endif
236
237ifdef BUILD_WII
238TARGET 	        = $(VERSION_NAME).elf
239TARGET_MAP      = $(TARGET).map
240TARGET_FINAL    = boot.dol
241TARGET_PLATFORM = WII
242BUILD_TREMOR    = 1
243BUILD_ELM       = 1
244BUILDING        = 1
245INCLUDES        = $(DEVKITPRO)/portlibs/ppc/include \
246                  $(DEVKITPRO)/libogc/include
247LIBRARIES       = $(DEVKITPRO)/portlibs/ppc/lib \
248                  $(DEVKITPRO)/libogc/lib/wii
249ifeq ($(BUILD_WII), 0)
250BUILD_DEBUG     = 1
251endif
252endif
253
254
255STRIP           = cp $(TARGET) $(TARGET_FINAL)
256ifndef BUILD_DEBUG
257ifndef NO_STRIP
258ifdef BUILD_WIN
259STRIP 	        = $(WINDEV)/$(PREFIX)strip$(EXTENSION) $(TARGET) -o $(TARGET_FINAL)
260endif
261ifdef BUILD_LINUX
262STRIP 	        = $(LNXDEV)/$(PREFIX)strip $(TARGET) -o $(TARGET_FINAL)
263endif
264ifdef BUILD_DARWIN
265STRIP           = $(PREFIX)strip $(TARGET) -o $(TARGET_FINAL)
266endif
267ifdef BUILD_PANDORA
268STRIP 	        = $(PNDDEV)/bin/arm-none-linux-gnueabi-strip $(TARGET) -o $(TARGET_FINAL)
269endif
270ifdef BUILD_GP2X
271STRIP 	        = $(GP2XDEV)/arm-open2x-linux-strip $(TARGET) -o $(TARGET_FINAL)
272endif
273ifdef BUILD_WIZ
274STRIP 	        = $(WIZDEV)/$(PREFIX)strip$(EXTENSION) $(TARGET) -o $(TARGET_FINAL)
275endif
276ifdef BUILD_OPENDINGUX
277STRIP           = $(OPENDINGUX_TOOLCHAIN_PREFIX)/bin/mipsel-linux-strip $(TARGET) -o $(TARGET_FINAL)
278endif
279ifdef BUILD_WII
280STRIP           = elf2dol $< $@
281endif
282endif
283endif
284
285
286#----------------------------------------------------------------------------------------------------
287# Directories
288#----------------------------------------------------------------------------------------------------
289
290ifdef BUILD_PSP
291INCS           += psp
292endif
293
294
295ifdef BUILD_DC
296INCS           += dc
297endif
298
299
300ifdef BUILD_WII
301INCS           += wii
302endif
303
304
305ifdef BUILD_SDL
306INCS           += sdl
307endif
308
309
310ifdef BUILD_LINUX
311INCS           += 'libpng-config --prefix'/include/libpng
312endif
313
314
315ifdef BUILD_GP2X
316INCS 	       += sdl/gp2x
317endif
318
319ifdef BUILD_WIZ
320INCS 	       += sdl/gp2x
321endif
322
323ifdef BUILD_OPENDINGUX
324INCS           += '$(OPENDINGUX_TOOLCHAIN_PREFIX)/bin/libpng-config --prefix'/include/libpng
325endif
326
327
328INCS 	       += .                                                                                 \
329                  source                                                                            \
330                  source/adpcmlib                                                                   \
331                  source/gamelib                                                                    \
332                  source/preprocessorlib                                                            \
333                  source/ramlib                                                                     \
334                  source/randlib                                                                    \
335                  source/scriptlib                                                                  \
336                  source/pnglib                                                                     \
337
338
339ifdef BUILD_GFX
340INCS 	       += source/gfxlib
341endif
342
343INCS += $(INCLUDES)
344
345#----------------------------------------------------------------------------------------------------
346# Objects
347#----------------------------------------------------------------------------------------------------
348
349ADPCM 	        = source/adpcmlib/adpcm.o
350
351ifdef BUILD_GFX
352GFX 	        = source/gfxlib/2xSaI.o                                                             \
353                  source/gfxlib/bilinear.o                                                          \
354                  source/gfxlib/dotmatrix.o                                                         \
355                  source/gfxlib/gfx.o                                                               \
356                  source/gfxlib/hq2x.o                                                              \
357                  source/gfxlib/scale2x.o                                                           \
358                  source/gfxlib/scanline.o                                                          \
359                  source/gfxlib/simple2x.o                                                          \
360                  source/gfxlib/tv2x.o
361endif
362
363ifdef BUILD_MMX
364GFX 	       += source/gfxlib/2xSaImmx.o                                                          \
365                  source/gfxlib/bilinearmmx.o                                                       \
366                  source/gfxlib/hq2x16mmx.o
367endif
368
369GAME	        = source/gamelib/draw.o                                                             \
370                  source/gamelib/draw16.o                                                           \
371                  source/gamelib/draw32.o                                                           \
372                  source/gamelib/font.o                                                             \
373                  source/gamelib/translation.o                                                             \
374                  source/gamelib/anigif.o                                                           \
375                  source/gamelib/bitmap.o 	                                                        \
376                  source/gamelib/screen.o                                                           \
377                  source/gamelib/screen16.o                                                         \
378                  source/gamelib/screen32.o                                                         \
379                  source/gamelib/loadimg.o                                                          \
380                  source/gamelib/palette.o                                                          \
381                  source/gamelib/packfile.o                                                         \
382                  source/gamelib/filecache.o                                                        \
383                  source/gamelib/pixelformat.o                                                      \
384                  source/gamelib/soundmix.o                                                         \
385                  source/gamelib/spriteq.o                                                          \
386                  source/gamelib/sprite.o                                                          \
387                  source/gamelib/spritex8p16.o                                                      \
388                  source/gamelib/spritex8p32.o                                                      \
389                  source/gamelib/commands.o                                                         \
390                  source/gamelib/models.o                                                           \
391                  source/gamelib/transform.o
392SCRIPT          = source/scriptlib/StackedSymbolTable.o                                             \
393                  source/scriptlib/ScriptVariant.o                                                  \
394                  source/scriptlib/SymbolTable.o                                                    \
395                  source/scriptlib/Instruction.o                                                    \
396                  source/scriptlib/Interpreter.o                                                    \
397                  source/scriptlib/ImportCache.o                                                    \
398                  source/scriptlib/ParserSet.o                                                      \
399                  source/scriptlib/Parser.o                                                         \
400                  source/scriptlib/Lexer.o                                                          \
401                  source/scriptlib/Stack.o                                                          \
402                  source/scriptlib/List.o                                                           \
403                  source/preprocessorlib/pp_lexer.o                                                 \
404                  source/preprocessorlib/pp_parser.o                                                \
405                  source/preprocessorlib/pp_expr.o
406RAM             = source/ramlib/ram.o
407RAND	        = source/randlib/rand32.o
408PNG             = source/pnglib/pngdec.o                                                            \
409                  source/pnglib/savepng.o
410SOURCE	        = source/stringptr.o                                                                \
411				  source/utils.o                                                                    \
412                  source/stristr.o
413
414
415
416ifdef BUILD_PSP
417GAME_CONSOLE    = psp/control/control.o                                                             \
418                  psp/dvemgr/dvemgr.o                                                               \
419                  psp/kernel/kernel.o                                                               \
420                  psp/graphics.o                                                                    \
421                  psp/audiodrv.o                                                                    \
422                  psp/sblaster.o                                                                    \
423                  psp/control.o                                                                     \
424                  psp/vertex.o                                                                      \
425                  psp/timer.o                                                                       \
426                  psp/video.o                                                                       \
427                  psp/image.o                                                                       \
428                  psp/menu.o                                                                        \
429                  psp/pspport.o
430endif
431
432
433ifdef BUILD_DC
434GAME_CONSOLE    = dc/dcport.o                                                                       \
435                  dc/bios.o                                                                         \
436                  dc/gdrom.o                                                                        \
437                  dc/timer.o                                                                        \
438                  dc/sblaster.o                                                                     \
439                  dc/control.o                                                                      \
440                  dc/video.o
441endif
442
443
444ifdef BUILD_WII
445GAME_CONSOLE    = wii/control.o                                                                     \
446                  wii/sblaster.o                                                                    \
447                  wii/timer.o                                                                       \
448                  wii/video.o                                                                       \
449                  wii/menu.o                                                                        \
450                  wii/wiiport.o
451endif
452
453
454ifdef BUILD_SDL
455GAME	       += source/gamelib/filters.o
456endif
457
458
459
460ifdef BUILD_SDL_IO
461GAME_CONSOLE   += sdl/joysticks.o                                                                   \
462                  sdl/control.o                                                                     \
463                  sdl/sblaster.o                                                                    \
464                  sdl/timer.o                                                                       \
465                  sdl/sdlport.o                                                                     \
466                  sdl/video.o                                                                       \
467                  sdl/menu.o
468endif
469
470
471ifdef BUILD_OPENGL
472GAME_CONSOLE   += sdl/opengl.o
473endif
474
475
476ifdef BUILD_LOADGL
477GAME_CONSOLE   += sdl/loadgl.o
478endif
479
480
481ifdef BUILD_GP2X
482GAME_CONSOLE   += sdl/gp2x/gp2xport.o
483endif
484
485
486ifdef BUILD_WIZ
487GAME_CONSOLE   += sdl/gp2x/gp2xport.o
488endif
489
490
491
492MAIN            = openbor.o					                                                \
493                  openborscript.o
494
495OBJS            = $(MAIN)                                                                           \
496                  $(GAME_CONSOLE)                                                                   \
497                  $(ADPCM)                                                                          \
498                  $(GFX)                                                                            \
499                  $(GAME)                                                                           \
500                  $(SOURCE)                                                                         \
501                  $(SCRIPT)                                                                         \
502                  $(RAM)                                                                            \
503                  $(RAND)                                                                           \
504                  $(PNG)
505
506#----------------------------------------------------------------------------------------------------
507# Compiler Flags
508#----------------------------------------------------------------------------------------------------
509
510CFLAGS 	       += $(addprefix -I", $(addsuffix ", $(INCS))) $(ARCHFLAGS) -D$(TARGET_PLATFORM)
511CFLAGS 	       += -Wall -fsigned-char
512
513ifndef BUILD_GP2X
514ifndef BUILD_DARWIN
515ifdef BUILD_LINUX
516CFLAGS         +=
517endif
518endif
519endif
520
521ifndef BUILD_DEBUG
522ifdef BUILD_DC
523CFLAGS 	       +=
524else
525CFLAGS 	       +=
526endif
527CFLAGS 	       += -fno-ident
528ifndef BUILD_AMD64
529CFLAGS         +=
530endif
531else
532CFLAGS 	       += -DDEBUG
533ifdef NO_RAM_DEBUGGER
534CFLAGS         += -DNO_RAM_DEBUGGER
535endif
536endif
537
538
539ifdef BUILD_PSP
540CFLAGS         += -G0
541endif
542
543
544ifdef BUILD_SDL
545CFLAGS 	       += -DSDL
546endif
547
548
549ifdef BUILD_DARWIN
550CFLAGS 	       += -DLINUX -headerpad_max_install_names -isysroot $(SDKPATH)
551endif
552
553
554ifdef BUILD_PANDORA
555CFLAGS         += -DLINUX
556endif
557
558
559ifdef BUILD_WII
560CFLAGS 	       += -D__ppc__ $(MACHDEP) -Wl,-Map,$(TARGET_MAP)
561ifdef BUILD_ELM
562CFLAGS         += -DUSE_LIBELM
563endif
564endif
565
566
567ifdef BUILD_WIZ
568CFLAGS 	       += -DGP2X
569endif
570
571
572ifdef BUILD_OPENDINGUX
573CFLAGS 	       += -D_REENTRANT -DOPENDINGUX -ffunction-sections -ffast-math -fsingle-precision-constant -G0 -mbranch-likely
574endif
575
576
577ifdef BUILD_MMX
578CFLAGS 	       += -DMMX
579endif
580
581
582ifdef BUILD_VORBIS
583CFLAGS         += -DOV_EXCLUDE_STATIC_CALLBACKS
584endif
585
586
587ifdef BUILD_TREMOR
588CFLAGS         += -DTREMOR
589endif
590
591
592ifdef BUILD_OPENGL
593CFLAGS         += -DOPENGL
594endif
595
596
597ifdef BUILD_LOADGL
598CFLAGS         += -DLOADGL
599endif
600
601
602ifdef BUILD_GLES
603CFLAGS         += -DGLES
604endif
605
606
607ifdef BUILD_VERBOSE
608CFLAGS         += -DVERBOSE
609endif
610
611
612CXXFLAGS        = $(CFLAGS) -fno-exceptions -fno-rtti
613ASFLAGS         = $(CFLAGS)
614
615#----------------------------------------------------------------------------------------------------
616# Library
617#----------------------------------------------------------------------------------------------------
618
619LIBS            = $(addprefix -L", $(addsuffix ", $(LIBRARIES)))
620
621
622ifdef BUILD_PSP
623LIBS 	       += -lpspgu -lpspaudio -lpsppower -lpsprtc
624endif
625
626
627ifdef BUILD_DARWIN
628LIBS           += -Wl,-syslibroot,$(SDKPATH) \
629                  -framework Cocoa \
630                  -framework OpenGL \
631                  -framework Carbon \
632                  -framework AudioUnit \
633                  -framework IOKit \
634                  -lSDLmain
635endif
636
637
638ifdef BUILD_SDL
639ifeq ($(findstring DGE, $(SDKPATH)), DGE)
640LIBS           += -lSDL -lSDL_gfx -lts
641else
642LIBS           += -lSDL -lSDL_gfx
643endif
644endif
645
646
647ifdef BUILD_WIN
648LIBS           += -luser32 -lgdi32 -lwinmm -ldxguid -lpsapi -lopengl32 -mwindows
649endif
650
651
652ifdef BUILD_PTHREAD
653LIBS           += -lpthread
654endif
655
656
657ifdef BUILD_WII
658ifdef BUILD_ELM
659LIBS           += -lelm -lwiiuse -lbte -logc
660else
661LIBS           += -lwiiuse -lbte -lfat -logc
662endif
663endif
664
665
666ifdef BUILD_STATIC
667LIBS           += -static
668endif
669
670
671ifdef BUILD_DC
672LIBS           += -lc -lgcc -lSDL_129 -ltremor
673endif
674
675
676ifdef BUILD_VORBIS
677LIBS           += -lvorbisfile -lvorbis -logg
678endif
679
680
681ifdef BUILD_TREMOR
682LIBS           += -lvorbisidec
683endif
684
685
686LIBS           += -lpng -lz -lm
687
688#----------------------------------------------------------------------------------------------------
689# Rules to manage Files and Libraries for PSP
690#----------------------------------------------------------------------------------------------------
691
692ifdef BUILD_PSP
693%.o : %.c
694	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
695	$(CC) $(CFLAGS) -c $< -o $@
696%.o : %.S
697	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
698	$(CC) $(CFLAGS) -c $< -o $@
699INCDIR          = $(INCS)
700PSP_EBOOT_TITLE = $(VERSION_NAME) $(VERSION)
701PSP_EBOOT_ICON 	= resources/OpenBOR_Icon_144x80.png
702PSP_EBOOT_PIC1	= resources/OpenBOR_Logo_480x272.png
703PSP_FW_VERSION  = 371
704PSP_LARGE_MEMORY= 1
705BUILD_PRX       = 1
706include psp/build.mak
707endif
708
709
710#----------------------------------------------------------------------------------------------------
711# Rules to manage Files and Libraries for Dreamcast
712#----------------------------------------------------------------------------------------------------
713
714ifdef BUILD_DC
715all : $(TARGET) $(TARGET_FINAL)
716KOS_LOCAL_CFLAGS = -I$(KOS_BASE)/../kos-ports/include -ffast-math
717include $(KOS_BASE)/Makefile.rules
718%.o : %.c
719	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
720	$(KOS_CC) $(KOS_CFLAGS) $(CFLAGS) -c $< -o $@
721%.o : %.s
722	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
723	$(KOS_AS) $(KOS_AFLAGS) $< -o $@
724%.o : %.S
725	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
726	$(KOS_AS) $(KOS_AFLAGS) $< -o $@
727$(TARGET) : $(OBJS)
728	@$(ECHO)
729	@$(ECHO) Linking $(TARGET_PLATFORM) Port: $(TARGET)...
730	$(KOS_CC) $(KOS_CFLAGS) $(KOS_LOCAL_CFLAGS) $(KOS_LDFLAGS) -o $@ $(KOS_START) $^ $(LDFLAGS) $(LIBS) $(KOS_LIBS)
731$(TARGET_FINAL) : $(TARGET)
732	@$(ECHO) Creating $(TARGET_PLATFORM) Port: $(TARGET_FINAL)...
733	$(KOS_OBJCOPY) -R .stack -O binary $(TARGET) $(TARGET_FINAL)
734	@$(ECHO)
735	@$(ECHO) Completed $(TARGET_PLATFORM) Port!
736	@$(ECHO) $(TARGET_FINAL) is now ready!
737endif
738
739
740#----------------------------------------------------------------------------------------------------
741# Rules to manage Files and Libraries for SDL
742#----------------------------------------------------------------------------------------------------
743
744ifdef BUILD_SDL
745ifdef BUILD_WII
746SOURCES = $(INCS)
747include $(DEVKITPPC)/wii_rules
748endif
749all : $(TARGET) $(TARGET_FINAL)
750	@$(ECHO)
751%.o : %.asm
752	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
753	$(YASM) -D $(TARGET_PLATFORM) -f $(OBJTYPE) -m $(TARGET_ARCH) -o $@ $<
754%.o : %.c
755	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
756	$(CC) $(CFLAGS) -c $< -o $@
757$(TARGET) : $(OBJS) $(RES)
758	@$(ECHO)
759	@$(ECHO) Linking $(TARGET_PLATFORM) Port: $(TARGET)...
760	$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(TARGET_RESOURCE) $(LDFLAGS) $(LIBS)
761$(TARGET_FINAL) : $(TARGET)
762	@$(ECHO) Stripping $(TARGET_PLATFORM) Port: $(TARGET_FINAL)...
763	$(STRIP)
764	@$(ECHO)
765	@$(ECHO) Completed $(TARGET_PLATFORM) Port!
766	@$(ECHO) $(TARGET_FINAL) is now ready!
767endif
768
769#----------------------------------------------------------------------------------------------------
770# Rules to manage Files and Libraries for Wii
771#----------------------------------------------------------------------------------------------------
772
773ifndef BUILD_SDL
774ifdef BUILD_WII
775SOURCES = $(INCS)
776include $(DEVKITPPC)/wii_rules
777all : $(TARGET) $(TARGET_FINAL)
778	@$(ECHO)
779%.o : %.c
780	@$(ECHO) Compiling $(TARGET_PLATFORM) Port: $<...
781	$(CC) $(CFLAGS) -c $< -o $@
782$(TARGET) : $(OBJS) $(RES)
783	@$(ECHO)
784	@$(ECHO) Linking $(TARGET_PLATFORM) Port: $(TARGET)...
785	$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(TARGET_RESOURCE) $(LDFLAGS) $(LIBS)
786$(TARGET_FINAL) : $(TARGET)
787	@$(ECHO) Stripping $(TARGET_PLATFORM) Port: $(TARGET_FINAL)...
788	$(STRIP)
789	@$(ECHO)
790	@$(ECHO) Completed $(TARGET_PLATFORM) Port!
791	@$(ECHO) $(TARGET_FINAL) is now ready!
792endif
793endif
794
795
796#----------------------------------------------------------------------------------------------------
797# Rules to CleanUp Files for All Platforms
798#----------------------------------------------------------------------------------------------------
799
800ifndef BUILDING
801all:
802	@$(ECHO)
803	@$(ECHO) Build A TARGET_PLATFORM:
804	@$(ECHO)
805	@$(ECHO) make BUILD_DC=1
806	@$(ECHO) make BUILD_PSP=1
807	@$(ECHO) make BUILD_PS2=1
808	@$(ECHO) make BUILD_WII=1
809	@$(ECHO) make BUILD_WIN=1
810	@$(ECHO) make BUILD_GP2X=1
811	@$(ECHO) make BUILD_WIZ=1
812	@$(ECHO) make BUILD_PANDORA=1
813	@$(ECHO) make BUILD_LINUX=1
814	@$(ECHO) make BUILD_OPENDINGUX=1
815	@$(ECHO)
816	@$(ECHO) Cleanup Intermediate Files:
817	@$(ECHO)
818	@$(ECHO) make clean
819	@$(ECHO)
820	@$(ECHO) Remove All Files:
821	@$(ECHO)
822	@$(ECHO) make clean-all
823	@$(ECHO)
824endif
825
826
827ifndef BUILD_PSP
828clean-all: clean-releases clean
829
830clean-releases:
831	rm -rf releases/*
832
833clean:
834	@$(ECHO)
835	@$(ECHO) "Removing All $(TARGET_PLATFORM) Files..."
836	rm -f $(TARGET) $(TARGET_FINAL) $(TARGET_MAP) PARAM.SFO linkmap $(OBJS)
837	@$(ECHO) Done!
838	@$(ECHO)
839endif
840
841version:
842	@$(ECHO) "-------------------------------------------------------"
843	@$(ECHO) "OpenBOR $(VERSION) - http://www.LavaLit.com"
844	@$(ECHO)
845	@$(ECHO) "All rights reserved."
846	@$(ECHO) "See LICENSE and README within OpenBOR root for details."
847	@$(ECHO)
848	@$(ECHO) "Copyright (c) 2004 - 2011 OpenBOR Team"
849	@$(ECHO) "-------------------------------------------------------"
850
851