mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
Two build-time steps shrink the embedded Web UI (html/) from 113,015 to 34,784 bytes (30.8 %): - tools/minify.py (new): string-literal-safe minifier that strips comments and indentation; comments are pure overhead on the wire, so the transfer size drops already before gzip (113,015 -> 101,498). Binary files (.ico) are copied through unchanged. The output goes to output/html_min/, the new fileadder input. - fileadder -z: gzip-compresses every added file (zlib gzip format, Z_BEST_COMPRESSION); the generated f_data entries carry a gzip flag. tools/Makefile links the tool against -lz. - httpd: adds "Content-Encoding: gzip" for flagged entries; the 8051 only copies compressed bytes, decompression happens in the browser. The JSON API stays uncompressed. Fixes required to make the sizes deterministic: - fileadder terminated files at data_read + 1, so the strlen()-based size computation depended on uninitialised buffer content; the NUL now lands directly after the content. - version.h was .PHONY, so every build rewrote it while parallel builds could read a half-written copy. - the file list was unscoped and missed .css/.ico; it is now scoped to html/ and covers all embedded types. Measured with make MACHINE=KP_9000_6XHML_X2: data block end moves from 0x5b977 to 0x487e0 (~78 KB freed on a 512 KB image). Verified with MACHINE=PCB_K0402WS_V3 and on real hardware (PCB-K0402WS-V3).
28 lines
608 B
Makefile
28 lines
608 B
Makefile
CC = gcc
|
|
CCFLAGS = -Wall -o
|
|
BUILDDIR = output
|
|
|
|
all: create_build_dir $(BUILDDIR)/injector $(BUILDDIR)/fileadder $(BUILDDIR)/httpd_sim\
|
|
$(BUILDDIR)/crc_calculator $(BUILDDIR)/imagebuilder
|
|
|
|
create_build_dir:
|
|
mkdir -p $(BUILDDIR)
|
|
|
|
clean:
|
|
rm -rf $(BUILDDIR)
|
|
|
|
$(BUILDDIR)/injector: injector.c
|
|
gcc $^ $(CCFLAGS) $@
|
|
|
|
$(BUILDDIR)/fileadder: fileadder.c
|
|
gcc $^ $(CCFLAGS) $@ -lz
|
|
|
|
$(BUILDDIR)/crc_calculator: crc_calculator.c
|
|
gcc $^ $(CCFLAGS) $@
|
|
|
|
$(BUILDDIR)/httpd_sim: httpd_sim.c httpd_sim.h
|
|
gcc $< $(CCFLAGS) $@ -I/usr/include/json-c -ljson-c
|
|
|
|
$(BUILDDIR)/imagebuilder: imagebuilder.c
|
|
gcc $^ $(CCFLAGS) $@
|