deleted file mode 100644
@@ -1,50 +0,0 @@
-ifeq ($(OS),Windows_NT)
- bindir ?= /usr/bin
- mandir ?= /usr/share/man
-else
- UNAME_S := $(shell uname -s)
- ifeq ($(UNAME_S),Darwin)
- bindir ?= /usr/local/sbin
- mandir ?= /usr/local/share/man
- else
- bindir ?= /usr/bin
- mandir ?= /usr/share/man
- endif
-endif
-
-EMXX ?= em++
-
-SOURCES = $(wildcard *.cpp)
-OBJECTS := $(patsubst %.cpp, %.o, $(SOURCES))
-EMOBJECTS := $(patsubst %.cpp, emscripten/%.o, $(SOURCES))
-
-WARN_FLAGS = -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wimplicit-fallthrough
-
-all: edid-decode
-
-sha = -DSHA=$(shell if test -d .git ; then git rev-parse --short=12 HEAD ; fi)
-date = -DDATE=$(shell if test -d .git ; then TZ=UTC git show --quiet --date='format-local:"%F %T"' --format='%cd'; fi)
-
-edid-decode: $(OBJECTS)
- $(CXX) $(LDFLAGS) -g -o $@ $(OBJECTS) -lm
-
-edid-decode.js: emscripten/edid-decode.js
-
-emscripten/edid-decode.js: $(EMOBJECTS)
- $(EMXX) $(LDFLAGS) -s EXPORTED_FUNCTIONS='["_parse_edid"]' -s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -o $@ $(EMOBJECTS) -lm
-
-%.o: %.cpp edid-decode.h oui.h Makefile
- $(CXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) -g $(sha) $(date) -o $@ -c $<
-
-emscripten/%.o: %.cpp edid-decode.h oui.h Makefile
- $(EMXX) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(WARN_FLAGS) $(sha) $(date) -o $@ -c $<
-
-clean:
- rm -f *.o emscripten/*.o
- rm -f edid-decode emscripten/edid-decode.js emscripten/edid-decode.wasm
-
-install:
- mkdir -p $(DESTDIR)$(bindir)
- install -m 0755 edid-decode $(DESTDIR)$(bindir)
- mkdir -p $(DESTDIR)$(mandir)/man1
- install -m 0644 edid-decode.1 $(DESTDIR)$(mandir)/man1
@@ -6,8 +6,9 @@ To build this do:
git clone git://linuxtv.org/edid-decode.git
cd edid-decode
-make
-make install
+meson setup _build
+meson compile -C _build
+meson install -C _build
Patches and bug reports can be sent to the linux-media@vger.kernel.org
mailinglist (see https://www.linuxtv.org/lists.php). Please make sure
@@ -46,15 +47,20 @@ https://hverkuil.home.xs4all.nl/edid-decode/edid-decode.html
This is updated regularly with the latest edid-decode. It uses emscripten
and the html file is maintained in the emscripten directory of edid-decode.
-To build edid-decode.js/wasm run 'make edid-decode.js'. This assumes
-that emscripten is installed, of course.
-
-You can use the konqueror browser to run it locally:
-
- konqueror emscripten/edid-decode.html
-
-For other browsers you need to serve the files using a local webserver.
-See also https://emscripten.org/docs/getting_started/Tutorial.html
+To build it, set the project up using the provided crossfile:
+
+ meson setup _build-wasm \
+ --cross-file ./emscripten/wasm-crossfile.txt \
+ --prefix=$(pwd)/_install-wasm
+ meson install _build-wasm
+ # serve the files using a local webserver
+ cd _install-wasm/bin
+ python3 -m http.server
+
+This assumes that emscripten is installed, of course. The location of the
+toolchain can be adjusted in emscripten/wasm-crossfile.txt.
+See also https://emscripten.org/docs/getting_started/Tutorial.html and
+https://mesonbuild.com/Cross-compilation.html.
You can find a very large collection of EDIDs here:
https://github.com/linuxhw/EDID
new file mode 100644
@@ -0,0 +1,14 @@
+[binaries]
+c = '/usr/lib/emscripten/emcc'
+cpp = '/usr/lib/emscripten/em++'
+ar = '/usr/lib/emscripten/emar'
+strip = '/usr/lib/emscripten/emstrip'
+
+[built-in options]
+default_library = 'static'
+
+[host_machine]
+system = 'emscripten'
+cpu_family = 'wasm32'
+cpu = 'wasm32'
+endian = 'little'
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,65 @@
+project(
+ 'edid-decode',
+ 'cpp',
+)
+
+edid_decode_args = [
+ '-Wno-missing-field-initializers',
+ '-Wno-unused-parameter',
+ '-Wimplicit-fallthrough',
+]
+edid_decode_link_args = []
+
+git = find_program('git', native: true, required: false)
+if git.found()
+ git_commit = run_command(
+ [git, 'rev-parse', '--short=12', 'HEAD'],
+ check: false,
+ )
+ git_date = run_command(
+ [git, 'show', '--quiet', '--date=format-local:%F %T', '--format=%cd'],
+ env: {'TZ': 'UTC'},
+ check: false,
+ )
+
+ if git_commit.returncode() == 0
+ edid_decode_args += ['-DSHA=' + git_commit.stdout().strip()]
+ endif
+ if git_date.returncode() == 0
+ edid_decode_args += ['-DDATE=' + git_date.stdout().strip()]
+ endif
+endif
+
+if target_machine.system() == 'emscripten'
+ edid_decode_link_args += [
+ '-sEXPORTED_FUNCTIONS=_parse_edid',
+ '-sEXPORTED_RUNTIME_METHODS=ccall,cwrap'
+ ]
+
+ fs = import('fs')
+ foreach filename : ['edid-decode.html', 'edid-decode.ico']
+ fs.copyfile(
+ 'emscripten' / filename,
+ install: true,
+ install_dir: 'bin',
+ )
+ endforeach
+endif
+
+edid_decode = executable(
+ 'edid-decode',
+ 'calc-gtf-cvt.cpp',
+ 'calc-ovt.cpp',
+ 'edid-decode.cpp',
+ 'parse-base-block.cpp',
+ 'parse-cta-block.cpp',
+ 'parse-di-ext-block.cpp',
+ 'parse-displayid-block.cpp',
+ 'parse-ls-ext-block.cpp',
+ 'parse-vtb-ext-block.cpp',
+ cpp_args : edid_decode_args,
+ link_args: edid_decode_link_args,
+ install : true,
+)
+
+install_man('edid-decode.1')
\ No newline at end of file