Skip to content

Commit 0a665fd

Browse files
committed
Improve building core and bootloader
1 parent ff16be6 commit 0a665fd

File tree

7 files changed

+62
-28
lines changed

7 files changed

+62
-28
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ settings.json
2323
*.cdi
2424
.libs
2525
build/
26+
release/
2627
*DS_CORE.BIN
2728
romdisk.img
2829
exports.c

Makefile

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#
1212

1313
TARGET = DS
14+
TARGET_NAME = DreamShell_v4.0.0_RC5
1415
TARGET_BIN = $(TARGET)_CORE.BIN
1516
TARGET_BIN_CD = 1$(TARGET_BIN)
1617
TRAGET_VERSION = -DVER_MAJOR=4 -DVER_MINOR=0 -DVER_MICRO=0 -DVER_BUILD=0x25 #RC 5
@@ -24,7 +25,6 @@ include sdk/Makefile.cfg
2425
INC_DIR = ./include
2526
SRC_DIR = ./src
2627
LIB_DIR = ./lib
27-
RES_DIR = ./resources
2828

2929
KOS_LDFLAGS += -L$(LIB_DIR)
3030
KOS_CFLAGS += -I$(INC_DIR) -I$(INC_DIR)/SDL -I$(INC_DIR)/fatfs -I$(INC_DIR)/ntfs \
@@ -138,27 +138,27 @@ romdisk.o: romdisk.img
138138
$(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o
139139

140140
logo: romdisk/logo.kmg.gz
141-
romdisk/logo.kmg.gz: $(RES_DIR)/logo_sq.png
142-
$(KOS_BASE)/utils/kmgenc/kmgenc -v $(RES_DIR)/logo_sq.png
143-
mv $(RES_DIR)/logo_sq.kmg logo.kmg
141+
romdisk/logo.kmg.gz: $(DS_RES)/logo_sq.png
142+
$(KOS_BASE)/utils/kmgenc/kmgenc -v $(DS_RES)/logo_sq.png
143+
mv $(DS_RES)/logo_sq.kmg logo.kmg
144144
gzip -9 logo.kmg
145145
mv logo.kmg.gz romdisk/logo.kmg.gz
146146

147147
make-build: $(DS_BUILD)/lua/startup.lua
148148

149-
$(DS_BUILD)/lua/startup.lua: $(RES_DIR)/lua/startup.lua
149+
$(DS_BUILD)/lua/startup.lua: $(DS_RES)/lua/startup.lua
150150
@echo Creating build directory...
151151
@mkdir -p $(DS_BUILD)
152152
@mkdir -p $(DS_BUILD)/apps
153153
@mkdir -p $(DS_BUILD)/cmds
154154
@mkdir -p $(DS_BUILD)/modules
155155
@mkdir -p $(DS_BUILD)/screenshot
156156
@mkdir -p $(DS_BUILD)/vmu
157-
@cp -R $(RES_DIR)/doc $(DS_BUILD)
158-
@cp -R $(RES_DIR)/firmware $(DS_BUILD)
159-
@cp -R $(RES_DIR)/fonts $(DS_BUILD)
160-
@cp -R $(RES_DIR)/gui $(DS_BUILD)
161-
@cp -R $(RES_DIR)/lua $(DS_BUILD)
157+
@cp -R $(DS_RES)/doc $(DS_BUILD)
158+
@cp -R $(DS_RES)/firmware $(DS_BUILD)
159+
@cp -R $(DS_RES)/fonts $(DS_BUILD)
160+
@cp -R $(DS_RES)/gui $(DS_BUILD)
161+
@cp -R $(DS_RES)/lua $(DS_BUILD)
162162
@mkdir -p $(DS_BUILD)/firmware/aica
163163
@cp ../kernel/arch/dreamcast/sound/arm/stream.drv $(DS_BUILD)/firmware/aica/kos_stream.drv
164164

@@ -169,11 +169,26 @@ $(LIB_DIR)/libSDL_$(SDL_VER).a:
169169

170170
build: $(TARGET)
171171
@echo Building modules, commands, applications and firmwares...
172-
cd ./modules && make && make install
173-
cd ./commands && make && make install
174-
cd ./applications && make && make install
175-
cd ./firmware/isoldr/loader && make && make install
176-
# cd ../firmware/aica && make && make install
172+
cd $(DS_BASE)/modules && make && make install
173+
cd $(DS_BASE)/commands && make && make install
174+
cd $(DS_BASE)/applications && make && make install
175+
cd $(DS_BASE)/firmware/isoldr/loader && make && make install
176+
cd $(DS_BASE)/firmware/bootloader && make && make install
177+
# cd $(DS_BASE)/firmware/aica && make && make install
178+
179+
release: build cdi
180+
@echo Creating a full release...
181+
@-rm -rf $(DS_BUILD)/.* 2> /dev/null
182+
@-rm -rf $(DS_BASE)/release
183+
@mkdir -p $(DS_BASE)/release/$(TARGET)
184+
@cp -R $(DS_BUILD)/* $(DS_BASE)/release/$(TARGET)
185+
@cp $(TARGET_BIN) $(DS_BASE)/release/$(TARGET)
186+
@cd $(DS_BASE)/firmware/bootloader && make && make release
187+
@mv $(DS_BASE)/firmware/bootloader/*.cdi $(DS_BASE)/release
188+
@mv $(TARGET).cdi $(DS_BASE)/release/$(TARGET_NAME).cdi
189+
@echo Compressing...
190+
@cd $(DS_BASE)/release && zip -q -r $(TARGET_NAME).zip * 2> /dev/null
191+
@echo Complete!
177192

178193
$(TARGET): libs $(TARGET_BIN) make-build
179194

@@ -200,14 +215,18 @@ $(TARGET).cdi: $(TARGET_BIN_CD) make-build
200215
@-rm -f $(DS_BUILD)/$(TARGET_BIN)
201216
@-rm -f $(DS_BUILD)/$(TARGET_BIN_CD)
202217
@cp $(TARGET_BIN_CD) $(DS_BUILD)/$(TARGET_BIN_CD)
203-
@$(DS_SDK)/bin/mkisofs -V DreamShell -C 0,11702 -G $(RES_DIR)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso $(DS_BUILD)
218+
@-rm -rf $(DS_BUILD)/.* 2> /dev/null
219+
@dd if=/dev/zero of=$(DS_BUILD)/0.0 bs=1024k count=450
220+
@$(DS_SDK)/bin/mkisofs -V DreamShell -C 0,11702 -G $(DS_RES)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso $(DS_BUILD)
204221
@echo Convert ISO to CDI...
205222
@-rm -f $(TARGET).cdi
206223
@$(DS_SDK)/bin/cdi4dc $(TARGET).iso $(TARGET).cdi >/dev/null
207224
@-rm -f $(TARGET).iso
225+
@-rm -f $(DS_BUILD)/$(TARGET_BIN_CD)
226+
@-rm -f $(DS_BUILD)/0.0
208227

209228
# If you have problems with mkisofs try data/data image:
210-
# $(DS_SDK)/bin/mkisofs -V DreamShell -G $(RES_DIR)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso $(DS_BUILD)
229+
# $(DS_SDK)/bin/mkisofs -V DreamShell -G $(DS_RES)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso $(DS_BUILD)
211230
# @$(DS_SDK)/bin/cdi4dc $(TARGET).iso $(TARGET).cdi >/dev/null
212231

213232
nulldc: $(TARGET).cdi

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ make
5050
make build
5151
```
5252

53+
### Release
54+
```console
55+
make release
56+
```
57+
5358
### Modules, applications and commands
5459
```console
5560
cd ./modules && make && make install && cd ../

firmware/bootloader/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.bin
2+
cd/

firmware/bootloader/Makefile

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,26 @@ $(TARGET_CD): $(TARGET).bin
5454
cdi: $(TARGET_CD)
5555
@mkdir -p ./cd
5656
@$(DS_SDK)/bin/scramble $(TARGET).bin $(TARGET_CD)
57-
@$(DS_SDK)/bin/mkisofs -V DreamShell -C 0,11702 -G res/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso ./cd
57+
@$(DS_SDK)/bin/mkisofs -V DreamShell -C 0,11702 -G $(DS_RES)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso ./cd
5858
@echo Convert ISO to CDI...
5959
@-rm -f $(TARGET).cdi
6060
@$(DS_SDK)/bin/cdi4dc $(TARGET).iso $(TARGET).cdi >/dev/null
61+
@-rm -f $(TARGET).iso
6162

6263
# If you have problems with mkisofs try data/data image:
63-
# $(DS_SDK)/bin/mkisofs -V DreamShell -G res/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso ./cd
64+
# $(DS_SDK)/bin/mkisofs -V DreamShell -G $(DS_RES)/IP.BIN -joliet -rock -l -x .DS_Store -o $(TARGET).iso ./cd
6465
# @$(DS_SDK)/bin/cdi4dc $(TARGET).iso $(TARGET).cdi -d >/dev/null
6566

66-
release: all $(TARGET_DUMMY) cdi
67-
rm -f $(TARGET_NAME).elf $(TARGET_NAME).bin $(TARGET_NAME).cdi
68-
mv $(TARGET).elf $(TARGET_NAME).elf
69-
mv $(TARGET).bin $(TARGET_NAME).bin
70-
mv $(TARGET).cdi $(TARGET_NAME).cdi
67+
release: all $(TARGET_DUMMY) cdi install
68+
@rm -f $(TARGET_NAME).bin $(TARGET_NAME).cdi
69+
@cp $(TARGET).bin $(TARGET_NAME).bin
70+
@mv $(TARGET).cdi $(TARGET_NAME).cdi
71+
72+
install: $(TARGET).bin
73+
@$(DS_SDK)/bin/mkbios $(DS_BUILD)/firmware/bios/ds/boot_loader_devkit_nogdrom.bios $(TARGET).bin
74+
@$(DS_SDK)/bin/mkbios $(DS_BUILD)/firmware/bios/ds/boot_loader_devkit.bios $(TARGET).bin
75+
@$(DS_SDK)/bin/mkbios $(DS_BUILD)/firmware/bios/ds/boot_loader_retail_nogdrom.bios $(TARGET).bin
76+
@$(DS_SDK)/bin/mkbios $(DS_BUILD)/firmware/bios/ds/boot_loader_retail.bios $(TARGET).bin
7177

7278
$(TARGET_DUMMY):
7379
@mkdir -p ./cd

firmware/bootloader/res/IP.BIN

-32 KB
Binary file not shown.

sdk/Makefile.cfg

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66

77
include $(KOS_BASE)/Makefile.rules
88

9-
DC_LAN_IP = 192.168.1.110
10-
DC_SERIAL_PORT = /dev/ttyUSB0
9+
DC_LAN_IP = 192.168.1.252
10+
DC_SERIAL_PORT = /dev/tty.usbserial-0001
1111
DC_SERIAL_BAUD = 500000
1212

1313
DS_BASE = $(KOS_BASE)/ds
14-
DS_SDK = $(DS_BASE)/sdk
15-
DS_BUILD = $(DS_BASE)/build
14+
DS_SDK = $(DS_BASE)/sdk
15+
DS_BUILD = $(DS_BASE)/build
16+
DS_RES = $(DS_BASE)/resources
1617

1718
KOS_SIZE = $(KOS_CC_BASE)/bin/$(KOS_CC_PREFIX)-size
1819
KOS_CFLAGS += -I$(DS_SDK)/include \

0 commit comments

Comments
 (0)