The Makefile at the project root drives the entire build, sideload, and packaging workflow. All targets write output to the out/ directory, which is created automatically and excluded from version control.
make zip
Packages the channel into out/GlobalTV.zip — no device required.
make install
Sideloads the zip to a Roku in developer mode over the local network.
make pkg
Produces a signed .pkg file ready for Channel Store submission.
make screenshot
Captures a full-HD screenshot of the running channel on the device.
make check
Runs all Roku 2026 certification pre-flight checks locally.
make clean
Deletes the out/ directory and all build artifacts.
make help
Prints a usage summary with all targets and required variables.
Generates a signed .pkg file for submission to the Roku Channel Store. Internally sideloads the app first, then requests a signed package from the device via http://<ROKU_IP>/plugin_package.
Detail
Value
Output
out/GlobalTV-1.0.6.pkg
Required variables
ROKU_IP, ROKU_PASS, SIGN_PASSWORD
Also runs
make zip, make install
Variable
Description
ROKU_IP
Local IP address of the Roku device
ROKU_PASS
Developer password
SIGN_PASSWORD
Signing password generated by genkey (see Packaging)
Example
Copy
Ask AI
make pkg ROKU_IP=192.168.1.42 ROKU_PASS=yourpassword SIGN_PASSWORD=abc123
Output
Copy
Ask AI
>>> [pkg] Instalando app para firmar...>>> [pkg] Solicitando paquete firmado...>>> [pkg] Descargando .pkg desde el Roku...>>> [pkg] OK → out/GlobalTV-1.0.6.pkg>>> [pkg] Listo para subir al Roku Channel Store.
Runs a series of local pre-flight checks against the source tree to verify Roku 2026 certification requirements. Does not require a device. Fails with a non-zero exit code if any check fails.
Detail
Value
Output
Pass/fail lines printed to stdout
Required variables
None
Example
Copy
Ask AI
make check
Checks performedManifest fields
Field
Purpose
title=
Channel display name
major_version=
Semver major
minor_version=
Semver minor
build_version=
Build number (must increment on each submission)
mm_icon_focus_hd=
HD home-screen icon
mm_icon_focus_fhd=
FHD home-screen icon
splash_screen_fhd=
FHD splash image
splash_screen_hd=
HD splash image
splash_screen_sd=
SD splash image
ui_resolutions=fhd
Declares FHD support
rsg_version=1.2
Minimum SceneGraph version (note: manifest currently sets 1.3)
supports_input_launch=1
Enables deep link launch
splash_rsg_optimization=1
Required for fast launch certification
splash_color=
Background fill during splash
splash_min_time=
Minimum splash display time
Image files
File
Purpose
images/logo-hd.png
HD channel icon
images/logo-fhd.png
FHD channel icon
images/splash-fhd.png
FHD splash screen
images/splash-hd.png
HD splash screen
images/splash-sd.png
SD splash screen
images/globaltv-logo.png
In-app branding asset
Code checks
Check
Rule
No eval()
Prohibited by Roku certification
No file://
All asset references must use pkg:/
No bs_libs_required=v30
Removed in Roku OS 11.5+
Deep link checks (in source/main.brs)
Check
Rule
roInput present
Required when supports_input_launch=1
roInputEvent handled
Required for input deep links
launchDeepLink or inputDeepLink
Deep link handling (checklist 8.1)
Beacon check
Check
Rule
signalBeacon(AppLaunchComplete) in components/MainScreen/
Required for launch time certification
OPTIONS key check
Check
Rule
options not intercepted in PlayerScreen
Player must not capture the OPTIONS key (checklist 9.1)
Prints a formatted usage summary to stdout. No side effects.Example
Copy
Ask AI
make help
Output
Copy
Ask AI
GlobalTV Roku — Makefile════════════════════════════════════════════════════════ make zip Crea out/GlobalTV.zip make install Sideload al Roku ROKU_IP=192.168.1.XX ROKU_PASS=xxxxxxxx make pkg Genera .pkg firmado para el Store ROKU_IP=192.168.1.XX ROKU_PASS=xxxxxxxx SIGN_PASSWORD=xxxx (de: telnet <ip> 8080 → genkey) make screenshot Captura screenshot HD del Roku ROKU_IP=192.168.1.XX ROKU_PASS=xxxxxxxx make check Verifica certificación Roku 2026 make clean Elimina out/