add script to copy WebGL stuff in place

This commit is contained in:
moehriegitt 2018-10-19 23:44:58 +02:00
parent 3cf4620878
commit d6d3097fe9
6 changed files with 118 additions and 18 deletions

View file

@ -149,7 +149,7 @@ CPPFLAGS += $(CPPFLAGS_WARN)
######################################################################
package_dir := $(package_name)-$(package-version)
package_dir := $(package_name)
HOB3L := ./hob3l.x
@ -172,6 +172,19 @@ TEST_STL.stl := \
H_CPMAT := $(notdir $(wildcard include/hob3lbase/*.h))
H_HOB3L := $(notdir $(wildcard include/hob3l/*.h))
######################################################################
# data files
SHARE_DATA := \
gl-matrix/README.txt \
gl-matrix/common.js \
gl-matrix/mat4.js \
gl-matrix/vec3.js \
js-hob3l.local.html
OUT_DATA := \
js-hob3l.html
######################################################################
# Basic Algorithms and Data Structures:
@ -264,12 +277,16 @@ all: \
libcptest.a
bin: \
hob3l.x
hob3l.x \
out/hob3l-js-copy-aux
lib: \
libhob3l.a \
libhob3lbase.a
data: \
$(addprefix out/,$(OUT_DATA))
maintainer-clean: zap
.PHONY: sweep
@ -322,6 +339,16 @@ hob3l.x: $(MOD_O.hob3l.x) libhob3l.a libhob3lbase.a
cptest.x: $(MOD_O.cptest.x) libhob3lbase.a libcptest.a
$(CC) -o $@ $(MOD_O.cptest.x) -L. -lcptest -lhob3lbase $(LIBS) -lm $(CFLAGS)
out/%: script/%.in
sed 's_@pkgdatadir@_$(pkgdatadir)_g' $< > $@.new
mv $@.new $@
out/%.html: share/%.local.html
cat $< | \
sed 's@LOCAL.*@-->@' | \
sed 's@REMOTE --- \(.*\)-->@-->\1@' > $@.new
mv $@.new $@
src/mat_gen_ext.c: $(srcdir)/script/mkmat
$(srcdir)/script/mkmat
@ -437,6 +464,11 @@ installdirs-bin:
$(NORMAL_INSTALL)
$(MKINSTALLDIR) $(DESTDIR)$(bindir)
installdirs-data:
$(NORMAL_INSTALL)
$(MKINSTALLDIR) $(DESTDIR)$(pkgdatadir)
$(MKINSTALLDIR) $(DESTDIR)$(pkgdatadir)/gl-matrix
installdirs-lib:
$(NORMAL_INSTALL)
$(MKINSTALLDIR) $(DESTDIR)$(libdir)
@ -446,11 +478,27 @@ installdirs-include:
$(MKINSTALLDIR) $(DESTDIR)$(includedir)/hob3lbase
$(MKINSTALLDIR) $(DESTDIR)$(includedir)/hob3l
installdirs: installdirs-bin installdirs-lib installdirs-include
install-bin: installdirs-bin
$(NORMAL_INSTALL)
$(INSTALL_BIN) hob3l.x $(DESTDIR)$(bindir)/$(package_name)$(_EXE)
$(INSTALL_BIN) \
hob3l.x \
$(DESTDIR)$(bindir)/$(package_name)$(_EXE)
$(INSTALL_SCRIPT) \
out/hob3l-js-copy-aux \
$(DESTDIR)$(bindir)/$(package_name)-js-copy-aux
install-data: installdirs-data
$(NORMAL_INSTALL)
for F in $(SHARE_DATA); do \
$(INSTALL_DATA) \
share/$$F \
$(DESTDIR)$(pkgdatadir)/$$F || exit 1; \
done
for F in $(OUT_DATA); do \
$(INSTALL_DATA) \
out/$$F \
$(DESTDIR)$(pkgdatadir)/$$F || exit 1; \
done
install-lib: installdirs-lib
$(NORMAL_INSTALL)
@ -462,12 +510,12 @@ install-include: installdirs-include
for H in $(H_CPMAT); do \
$(INSTALL_DATA) \
include/hob3lbase/$$H \
$(DESTDIR)$(includedir)/hob3lbase/$$H; \
$(DESTDIR)$(includedir)/hob3lbase/$$H || exit 1; \
done
for H in $(H_HOB3L); do \
$(INSTALL_DATA) \
include/hob3l/$$H \
$(DESTDIR)$(includedir)/hob3l/$$H; \
$(DESTDIR)$(includedir)/hob3l/$$H || exit 1; \
done
uninstall:
@ -476,13 +524,18 @@ uninstall:
$(UNINSTALL) $(DESTDIR)$(libdir)/$(LIB_)hob3lbase$(_LIB)
$(UNINSTALL) $(DESTDIR)$(libdir)/$(LIB_)$(package_name)$(_LIB)
for H in $(H_CPMAT); do \
$(UNINSTALL) $(DESTDIR)$(includedir)/hob3lbase/$$H; \
$(UNINSTALL) $(DESTDIR)$(includedir)/hob3lbase/$$H || exit 1; \
done
for H in $(H_HOB3L); do \
$(UNINSTALL) $(DESTDIR)$(includedir)/hob3l/$$H; \
$(UNINSTALL) $(DESTDIR)$(includedir)/hob3l/$$H || exit 1; \
done
for F in $(DATA); do \
$(UNINSTALL) $(DESTDIR)$(pkgdatadir)/$$F || exit 1; \
done
$(UNINSTALL_DIR) $(DESTDIR)$(includedir)/hob3lbase
$(UNINSTALL_DIR) $(DESTDIR)$(includedir)/hob3l
$(UNINSTALL_DIR) $(DESTDIR)$(pkgdatadir)/gl-matrix
$(UNINSTALL_DIR) $(DESTDIR)$(pkgdatadir)
# check installation by running 'test' with installed binary
check: clean-test

View file

@ -325,8 +325,8 @@ and all `*dir` options and also `DESTDIR` support as well as
```
For better package separation, the `install` target is split into
`install-bin`, `install-lib`, `install-include` (e.g. to have a
separate `-dev` package as in Debian distributions).
`install-bin`, `install-data`, `install-lib`, `install-include`
(e.g. to have a separate `-dev` package as in Debian distributions).
Unfortunately, there is no `install-doc` yet. FIXME.

View file

@ -1,4 +1,4 @@
# Top Level Structures
# JavaScript/WebGL Scene Format
The top-level has the following variables (declared with 'var' or by
assigning to an identifier):
@ -178,9 +178,9 @@ supports uint16 indices.
## Example
The following draw a centred cuboid with edge length 8 cm in x
direction, 6 cm in y direction and 4 cm in z direction in orange at
full opacity. Groups are not used in this example.
The following represents a centred cuboid with edge length 8 cm in x
direction, 6 cm in y direction and 4 cm in z direction in bright
orange colour at full opacity. Groups are not used in this example.
```
var group = {};

View file

@ -38,6 +38,8 @@ localedir := $(datarootdir)/locale
mandir := $(datarootdir)/man
lispdir := $(datarootdir)/emacs/site-lisp
pkgdatadir := $(datadir)/$(package_dir)
htmldir := $(docdir)
dvidir := $(docdir)
pdfdir := $(docdir)
@ -57,6 +59,9 @@ man2ext := .2
.PHONY: install-bin
install-bin:
.PHONY: install-data
install-data:
.PHONY: install-lib
install-lib:
@ -67,7 +72,7 @@ install-include:
install-doc: doc
.PHONY: install
install: install-bin install-lib install-include install-doc
install: install-bin install-data install-lib install-include install-doc
.PHONY: uninstall
uninstall:
@ -78,6 +83,9 @@ install-lib: lib installdirs-lib
.PHONY: install-bin
install-bin: bin installdirs-bin
.PHONY: install-data
install-data: data installdirs-data
.PHONY: install-include
install-include: installdirs-include
@ -85,11 +93,15 @@ install-include: installdirs-include
install-doc: install-man install-info install-html install-dvi install-ps install-pdf
.PHONY: installdirs
installdirs: installdirs-bin installdirs-lib installdirs-include installdirs-doc
installdirs: \
installdirs-bin installdirs-data installdirs-lib installdirs-include installdirs-doc
.PHONY: installdirs-bin
installdirs-bin:
.PHONY: installdirs-data
installdirs-data:
.PHONY: installdirs-lib
installdirs-lib:
@ -158,7 +170,7 @@ distclean: clean
maintainer-clean: distclean
.PHONY: all
all: bin lib doc
all: bin data lib doc
.PHONY: doc
doc: info man html dvi ps pdf
@ -166,6 +178,9 @@ doc: info man html dvi ps pdf
.PHONY: bin
bin:
.PHONY: data
data:
.PHONY: lib
lib:

View file

@ -0,0 +1,30 @@
#! /bin/sh
pkgdatadir='@pkgdatadir@'
FILE="$1"
if test -z "$FILE"
then
echo "Usage: $0 FILE.js" 1>&2
exit 1
fi
DIR=$(dirname "$FILE")
NAME=$(basename "$FILE" .js)
rm -f "$FILE.gz"
gzip -c "$FILE" > "$FILE.gz"
mkdir -p "$DIR/gl-matrix"
cp "$pkgdatadir/gl-matrix/common.js" "$DIR/gl-matrix"
cp "$pkgdatadir/gl-matrix/mat4.js" "$DIR/gl-matrix"
cp "$pkgdatadir/gl-matrix/vec3.js" "$DIR/gl-matrix"
rm -f "$DIR/$NAME.local.html"
cat "$pkgdatadir/js-hob3l.local.html" \
| sed "s@js-hob3l@$NAME@" \
> "$DIR/$NAME.local.html"
rm -f "$DIR/$NAME.html"
cat "$pkgdatadir/js-hob3l.html" \
| sed "s@js-hob3l@$NAME@" \
> "$DIR/$NAME.html"

View file

@ -129,6 +129,8 @@ case "dump-stl": bool &opt->dump_stl {
}
case "dump-js": bool &opt->dump_js {
"print after stage 4: final 2D polygon stack in JavaScript/WebGL format";
"The script 'hob3l-js-copy-aux' will add files needed to view the model";
"in a WebGL enabled web browser.";
opt->have_dump = true;
}