aboutsummaryrefslogtreecommitdiff
path: root/Source/Makefile
blob: 304df53afb9ce1636d2a77a0110a6cb9b4e099c1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
CC = psx-gcc
DEFINE= -DFIXMATH_FAST_SIN -D_PAL_MODE_
DEFINE += -DPSXSDK_DEBUG
DEFINE +=  -DNO_CDDA
#DEFINE +=  -DNO_INTRO
LIBS= -lfixmath
CC_FLAGS = -Wall -Werror -c -Os
LINKER = psx-gcc

PROJECT = AIRPORT
PROJECT_DIR = ~/Airport

ELF2EXE = elf2exe
ELF2EXE_FLAGS = -mark="A homebrew game created with PSXSDK"
LICENSE_FILE = /usr/local/psxsdk/share/licenses/infoeur.dat

PSXSDK_DIR = /usr/local/psxsdk/bin

EMULATOR_DIR = ~/pcsxr
EMULATOR = pcsxr.exe
SOUND_INTERFACE =
EMULATOR_FLAGS = -nogui -psxout
OBJ_DIR = Obj
SRC_DIR = .
MUSIC_TRACKS = --track=../Bin/TRACK01.bin --track=../Bin/TRACK02.bin --track=../Bin/TRACK03.bin
FFMPEG = ffmpeg
FFMPEG_DIR = ../Music/ffmpeg/bin
FFMPEG_FLAGS = -f s16le -acodec pcm_s16le

GNU_SIZE = mipsel-unknown-elf-size

all: build image clean
#emulator clean

rebuild: remove build

build: clean objects levels $(PROJECT).elf $(PROJECT).exe
	
objects: 	$(addprefix $(OBJ_DIR)/,main.o System.o Menu.o Gfx.o Pad.o MainMenuBtnAni.o 	\
			LoadMenu.o GameGui.o Sfx.o Camera.o EndAnimation.o			\
			PSXSDKIntro.o PltParser.o Game.o Font.o MemCard.o			\
			Aircraft.o)
			
music_objects:	$(addprefix ../Music/, TRACK01.bin TRACK02.bin TRACK03.bin)
			
remove:
	rm -f Obj/*.o
	
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	$(CC) $< -o $@ $(DEFINE) $(CC_FLAGS)
	
$(PROJECT).elf: 
	$(LINKER) Obj/*.o -o Exe/$(PROJECT).elf $(LIBS) -Wl,--gc-sections
	
$(PROJECT).exe:
	$(ELF2EXE) Exe/$(PROJECT).elf Exe/$(PROJECT).exe $(ELF2EXE_FLAGS)
	cp Exe/$(PROJECT).exe ../cdimg
	
image:
	rm -f $(PROJECT).iso $(PROJECT).bin
	rm -f $(PROJECT).cue
	mkisofs -o $(PROJECT).iso -V $(PROJECT) -sysid PLAYSTATION ../cdimg
	mkpsxiso $(PROJECT).iso $(PROJECT).bin $(LICENSE_FILE) $(MUSIC_TRACKS)
	mv $(PROJECT).bin ../Bin
	mv $(PROJECT).cue ../Bin
	rm -f $(PROJECT).cue
	rm -f $(PROJECT).iso
	$(GNU_SIZE) Exe/$(PROJECT).elf
	
emulator:
	export PATH=$$PATH:$(EMULATOR_DIR)
	$(EMULATOR) -cdfile $(PROJECT_DIR)/Bin/$(PROJECT).bin $(EMULATOR_FLAGS)
	
clean:
	rm -f $(PROJECT).elf cdimg/$(PROJECT).exe $(PROJECT).bin $(PROJECT).cue cdimg/README.txt
	rm -f $(PROJECT).iso $(PROJECT).exe $(PROJECT).elf

tiles:
	rm -f ../cdimg/DATA/SPRITES/*.TIM
	rm -f ../cdimg/DATA/FONTS/*.FNT
	bmp2tim ../Sprites/PSXDisk.bmp 		../cdimg/DATA/SPRITES/PSXDISK.TIM 16 -org=384,0 -mpink
	bmp2tim ../Sprites/IntroFnt.bmp 	../cdimg/DATA/SPRITES/INTROFNT.TIM 16 -org=384,76 -mpink
	bmp2tim ../Sprites/Tileset1.bmp 	../cdimg/DATA/SPRITES/TILESET1.TIM 16 -org=384,0 -mpink
	bmp2tim ../Sprites/Tileset2.bmp 	../cdimg/DATA/SPRITES/TILESET2.TIM 16 -org=640,0 -mpink
	bmp2tim ../Sprites/MainMenu.bmp 	../cdimg/DATA/SPRITES/MAINMENU.TIM 16 -org=768,384 -mpink
	bmp2tim ../Sprites/Loading.bmp 		../cdimg/DATA/SPRITES/LOADING.TIM 4 -mpink -org=768,256 -clut=384,496
	bmp2tim ../Sprites/Plane.bmp 		../cdimg/DATA/SPRITES/PLANE.TIM 16 -org=768,288 -mpink	
	bmp2tim ../Sprites/Buttons.bmp 		../cdimg/DATA/SPRITES/BUTTONS.TIM 16 -org=784,288 -mpink
	bmp2tim ../Sprites/GamePln.bmp 		../cdimg/DATA/SPRITES/GAMEPLN.TIM 8 -mpink -org=800,304 -clut=384,497
	bmp2tim ../Sprites/GamePln_Blue.bmp ../cdimg/DATA/SPRITES/PLNBLUE.CLT 8 -mpink -clut=384,501
	bmp2tim ../Sprites/Bubble.bmp 		../cdimg/DATA/SPRITES/BUBBLE.TIM 8 -org=848,288 -mpink -clut=384,498
	bmp2tim ../Sprites/Font_1_4bit.bmp	../cdimg/DATA/FONTS/FONT_1.FNT 4 -org=960,256 -mpink -clut=384,500
	bmp2tim ../Sprites/Font_2_4bit.bmp	../cdimg/DATA/FONTS/FONT_2.FNT 4 -org=768,304 -mpink -clut=384,499
	bmp2tim ../Sprites/Arrows.bmp		../cdimg/DATA/SPRITES/ARROWS.TIM 16 -org=812,304 -mpink
	bmp2tim ../Sprites/GPL_4bit.bmp		../cdimg/DATA/SPRITES/GPL.TIM 4 -org=384,174 -mpink -clut=384,502
	bmp2tim ../Sprites/OpSrc_8bit.bmp	../cdimg/DATA/SPRITES/OPENSRC.TIM 8 -org=464,0 -mpink -clut=384,503
	bmp2tim ../Sprites/Mouse.bmp		../cdimg/DATA/SPRITES/MOUSE.TIM 16 -org=828,304 -mpink
	
sounds:
	rm -f ../cdimg/DATA/SOUNDS/*.VAG
	wav2vag ../Sounds/Bell.wav 		../cdimg/DATA/SOUNDS/BELL.VAG
	wav2vag ../Sounds/Accept.wav 	../cdimg/DATA/SOUNDS/ACCEPT.VAG
	wav2vag ../Sounds/TrayCl.wav 	../cdimg/DATA/SOUNDS/TRAYCL.VAG
	wav2vag ../Sounds/SpinDisk.wav	../cdimg/DATA/SOUNDS/SPINDISK.VAG
	
levels: LEVEL1.LVL LEVEL1.PLT

%.LVL:
	cp ../Levels/$@ ../cdimg/DATA/LEVELS/
	
%.PLT:
	cp ../Levels/$@ ../cdimg/DATA/LEVELS

music: clean_music music_objects

clean_music:
	rm -f ../Music/*.bin

%.bin: %.mp3
	rm -f ../Bin/$@1
	$(FFMPEG) -i $< $(FFMPEG_FLAGS) $@
	cp ../Music/$@ ../Bin/