Adds documentation of building and using our dev container.

This commit is contained in:
2026-01-27 07:05:56 -08:00
parent 815f865060
commit 014402d3cc
3 changed files with 212 additions and 39 deletions

107
README.md
View File

@@ -62,9 +62,55 @@ git clone https://git.tomusan.com/your-username/nextcloud-share.git
cd nextcloud-share
```
### 2. Configure Test Environment
### 2. Build the 3DS Development Container
Copy the example configuration file:
Build the container image (first time only, or when Dockerfile changes):
```bash
./scripts/build-container.sh 3ds
```
This creates a complete 3DS development environment with:
- devkitARM GCC 15.2.0
- All 47 available 3DS portlibs
- CIA creation tools (bannertool, makerom, ctrtool)
- Build time: ~10-15 minutes on first build
**Note**: The container is built once and reused. You only rebuild when the Dockerfile changes.
### 3. Compile Your 3DS Project
```bash
# From within your project directory
cd your-3ds-project
podman run --rm -v .:/project:z tomusan/devkitarm-3ds:latest make
# Or specify a path
podman run --rm -v ~/my-game:/project:z tomusan/devkitarm-3ds:latest make
```
**Output files**: `.3dsx` (homebrew), `.elf` (debug), `.smdh` (metadata), `.cia` (installable)
### 4. Interactive Development Shell
For debugging or manual builds:
```bash
# Current directory
./scripts/container-shell.sh
# Specific project
./scripts/container-shell.sh ~/my-3ds-game
# With extra volumes or environment
./scripts/container-shell.sh ~/my-game -v /data:/data:z -e DEBUG=1
```
Inside the container, all devkitARM tools are available in PATH. Run `make` to build, `exit` to leave.
### 5. Configure Test Environment (Optional)
For testing with real Nextcloud servers, copy the example configuration:
```bash
cp config.example config
@@ -79,40 +125,37 @@ NEXTCLOUD_USER=your-username
NEXTCLOUD_PASSWORD=your-password
```
**Note**: The `config` file is in `.gitignore` and will never be committed. Each developer should create their own local config.
### 3. Build Using Podman
#### Build the 3DS version:
```bash
# Build the container image (first time only)
podman build -f docker/devkitarm.Dockerfile -t nextcloud-share-3ds .
# Compile the project
podman run --rm -v ./:/project:z nextcloud-share-3ds make -C 3ds
# Output files will be in 3ds/build/
```
#### Run tests:
```bash
podman run --rm -v ./:/project:z nextcloud-share-3ds make test
```
#### Interactive development shell:
```bash
podman run --rm -it -v ./:/project:z nextcloud-share-3ds bash
```
**Note**: The `config` file is in `.gitignore` and will never be committed.
## 🔧 Building
Detailed build instructions for each platform will be added as they are implemented. See platform-specific README files:
### Using Development Containers
- [3ds/README.md](3ds/README.md) - Nintendo 3DS build instructions
- More coming soon...
All builds run in isolated containers with complete toolchains. See [docker/README.md](docker/README.md) for detailed container documentation.
**Available containers:**
- **3DS**: `tomusan/devkitarm-3ds:latest` - Nintendo 3DS with full CIA support
**Quick build commands:**
```bash
# Build 3DS container (first time)
./scripts/build-container.sh 3ds
# Compile a 3DS project
podman run --rm -v ~/my-game:/project:z tomusan/devkitarm-3ds:latest make
# Interactive shell
./scripts/container-shell.sh ~/my-game
```
**Build performance:**
- First build: ~10-15 minutes (downloads and compiles tools)
- Subsequent builds: Instant (uses build cache)
- Container rebuilds: Only needed when Dockerfile changes
Platform-specific build instructions:
- [docker/README.md](docker/README.md) - Container usage and CIA creation
- More platforms coming soon...
## ⚙️ Configuration