らんだむな記憶

blogというものを体験してみようか!的なー

ttxはCFF2の夢を見るか?

Adobe - Adobe Font Development Kit for OpenType | Adobe Developer ConnectionからFDK-2.5.65463-LINUX.zipを回収してくれば
GitHub - adobe-fonts/adobe-variable-font-prototype: OpenType-CFF2 variable font exampleのvariable fontをビルドできるのだが、zip版のAFDKOだとやっぱりCFF2は見られないね。
ということで、

$ git clone -b VariableFontSupport https://github.com/adobe-type-tools/afdko.git

して、バリアフリー、もといバリアブルなブランチを引っ張ってきて野良ビルドすべしべし。相変わらずx86向けになってそうなので、Makefileをがしがし書き換えてx64っぽくする。
作業後にgit diffでパッチ作ると次回以降でうまうまだと思ったのでやっとく。「a/」とか「b/」は邪魔なので削る。

$ patch -p0 < linux64patch.txt

で以下のパッチを取り込んで、sh BuildAllLinux.shすれば幸せになれる(?)
後は、「ttx -o AdobeVFPrototype.ttx.txt AdobeVFPrototype.otf」とでもすりゃーいいが、まったくもって誰得感半端ない情報なのでメモりつつ震え上がってしまう。*1
[linux64patch.txt]

diff --git a/FDK/Tools/Programs/public/config/linux/gcc/gcc.mak b/FDK/Tools/Programs/public/config/linux/gcc/gcc.mak
index 186a686..cff4f20 100755
--- FDK/Tools/Programs/public/config/linux/gcc/gcc.mak
+++ FDK/Tools/Programs/public/config/linux/gcc/gcc.mak
@@ -14,7 +14,7 @@ PLATFORM = linux
 HARDWARE = i86
 COMPILER = gcc
 SYS_LIBS = -lm
-XFLAGS = -m32
+XFLAGS =
 
 # Directories (relative to build directory)
 CT_LIB_DIR = $(ROOT_DIR)/../public/lib/lib/$(PLATFORM)/$(CONFIG)
diff --git a/FDK/Tools/Programs/public/lib/config/linux/gcc/gcc.mak b/FDK/Tools/Programs/public/lib/config/linux/gcc/gcc.mak
index b2b4942..259e35e 100755
--- FDK/Tools/Programs/public/lib/config/linux/gcc/gcc.mak
+++ FDK/Tools/Programs/public/lib/config/linux/gcc/gcc.mak
@@ -13,7 +13,7 @@
 PLATFORM = linux
 HARDWARE = i86
 COMPILER = gcc
-XFLAGS = -m32
+XFLAGS =
 # Directories (relative to build directory)
 LIB_DIR = $(ROOT_DIR)/lib/$(PLATFORM)/$(CONFIG)
 
diff --git a/FDK/Tools/Programs/public/lib/config/linux/gcc/gcc_tx.mak b/FDK/Tools/Programs/public/lib/config/linux/gcc/gcc_tx.mak
index 94b42a4..ba21b55 100755
--- FDK/Tools/Programs/public/lib/config/linux/gcc/gcc_tx.mak
+++ FDK/Tools/Programs/public/lib/config/linux/gcc/gcc_tx.mak
@@ -13,7 +13,7 @@
 PLATFORM = linux
 HARDWARE = i86
 COMPILER = gcc
-XFLAGS = -m32
+XFLAGS =
 
 # Directories (relative to build directory)
 LIB_DIR = $(ROOT_DIR)/lib/$(PLATFORM)/$(CONFIG)
diff --git a/FDK/Tools/Programs/sfntdiff/build/linux/gcc/debug/Makefile b/FDK/Tools/Programs/sfntdiff/build/linux/gcc/debug/Makefile
index 89e1cb1..002cfc7 100755
--- FDK/Tools/Programs/sfntdiff/build/linux/gcc/debug/Makefile
+++ FDK/Tools/Programs/sfntdiff/build/linux/gcc/debug/Makefile
@@ -7,7 +7,7 @@ CONFIG = debug
 ROOT_DIR = ../../../..
 OBJECT_DIR = .
 
-CFLAGS = $(STD_OPTS) -m32 -g -I$(ROOT_DIR)/../spot/sfnt_includes
+CFLAGS = $(STD_OPTS) -g -I$(ROOT_DIR)/../spot/sfnt_includes
 
 # Program
 PRG_SRCS = $(SRC_DIR)/Dmain.c \
diff --git a/FDK/Tools/Programs/sfntdiff/build/linux/gcc/release/Makefile b/FDK/Tools/Programs/sfntdiff/build/linux/gcc/release/Makefile
index 53065fa..f962819 100755
--- FDK/Tools/Programs/sfntdiff/build/linux/gcc/release/Makefile
+++ FDK/Tools/Programs/sfntdiff/build/linux/gcc/release/Makefile
@@ -7,7 +7,7 @@ CONFIG = release
 ROOT_DIR = ../../../..
 OBJECT_DIR = .
 
-CFLAGS = $(STD_OPTS) -m32 -I$(ROOT_DIR)/../spot/sfnt_includes
+CFLAGS = $(STD_OPTS) -I$(ROOT_DIR)/../spot/sfnt_includes
 
 # Program
 PRG_SRCS = $(SRC_DIR)/Dmain.c \
diff --git a/FDK/Tools/Programs/sfntedit/build/linux/gcc/debug/Makefile b/FDK/Tools/Programs/sfntedit/build/linux/gcc/debug/Makefile
index eb2a48f..720311d 100755
--- FDK/Tools/Programs/sfntedit/build/linux/gcc/debug/Makefile
+++ FDK/Tools/Programs/sfntedit/build/linux/gcc/debug/Makefile
@@ -7,7 +7,7 @@ CONFIG = debug
 ROOT_DIR = ../../../..
 OBJECT_DIR = .
 
-CFLAGS = $(STD_OPTS) -m32  -g -I$(ROOT_DIR)/../spot/sfnt_includes
+CFLAGS = $(STD_OPTS) -g -I$(ROOT_DIR)/../spot/sfnt_includes
 
 # Program
 PRG_SRCS = $(SRC_DIR)/Eda.c \
diff --git a/FDK/Tools/Programs/sfntedit/build/linux/gcc/release/Makefile b/FDK/Tools/Programs/sfntedit/build/linux/gcc/release/Makefile
index 9406c82..b2d8adc 100755
--- FDK/Tools/Programs/sfntedit/build/linux/gcc/release/Makefile
+++ FDK/Tools/Programs/sfntedit/build/linux/gcc/release/Makefile
@@ -7,7 +7,7 @@ CONFIG = release
 ROOT_DIR = ../../../..
 OBJECT_DIR = .
 
-CFLAGS = $(STD_OPTS) -m32 -I$(ROOT_DIR)/../spot/sfnt_includes
+CFLAGS = $(STD_OPTS) -I$(ROOT_DIR)/../spot/sfnt_includes
 
 # Program
 PRG_SRCS = $(SRC_DIR)/Eda.c \
diff --git a/FDK/Tools/Programs/spot/build/linux/gcc/debug/Makefile b/FDK/Tools/Programs/spot/build/linux/gcc/debug/Makefile
index 425a69d..c7ac4ce 100755
--- FDK/Tools/Programs/spot/build/linux/gcc/debug/Makefile
+++ FDK/Tools/Programs/spot/build/linux/gcc/debug/Makefile
@@ -13,7 +13,7 @@ PRG_TARGET = $(EXE_DIR)/spot
 # Build targets
 TARGETS = $(PRG_TARGET)
 
-CFLAGS = $(STD_OPTS) -m32 -g -I$(ROOT_DIR)/sfnt_includes -I$(SRC_DIR) -DEXECUTABLE=1 -g
+CFLAGS = $(STD_OPTS) -g -I$(ROOT_DIR)/sfnt_includes -I$(SRC_DIR) -DEXECUTABLE=1 -g
 
 # Program
 PRG_SRCS = $(SRC_DIR)/BASE.c \
diff --git a/FDK/Tools/Programs/spot/build/linux/gcc/release/Makefile b/FDK/Tools/Programs/spot/build/linux/gcc/release/Makefile
index df09b6f..c586271 100755
--- FDK/Tools/Programs/spot/build/linux/gcc/release/Makefile
+++ FDK/Tools/Programs/spot/build/linux/gcc/release/Makefile
@@ -13,7 +13,7 @@ PRG_TARGET = $(EXE_DIR)/spot
 # Build targets
 TARGETS = $(PRG_TARGET)
 
-CFLAGS = $(STD_OPTS) -m32 -g -I$(ROOT_DIR)/sfnt_includes -I$(SRC_DIR) -DEXECUTABLE=1
+CFLAGS = $(STD_OPTS) -g -I$(ROOT_DIR)/sfnt_includes -I$(SRC_DIR) -DEXECUTABLE=1
 
 # Program
 PRG_SRCS = $(SRC_DIR)/BASE.c \

*1:GSUB, GPOS, CFF2のオレオレパーサーもそろそろ書きたいかもしれないな。その前にパーサの全体をC++にポーティングするとかしないと遅くてかなわん...。まぁ、書き方がまずいんだろうがなぁ。