Adds documentation of building and using our dev container.
This commit is contained in:
107
README.md
107
README.md
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user