Move util/data into modules/src/em_data, for consistency with the other

modules.
This commit is contained in:
David Given
2016-08-14 14:09:38 +02:00
parent 38fa6941d5
commit 4d24666432
17 changed files with 21 additions and 21 deletions

View File

@@ -76,8 +76,8 @@ local function build_variant(code, cflags)
"h+local",
"modules+headers",
"modules/src/alloc+lib",
"modules/src/em_data+lib",
"modules/src/system+lib",
"util/data+em_data",
},
vars = {
["+cflags"] = cflags

View File

@@ -0,0 +1,3 @@
build.mk
em_ptyp.c
new_table

View File

@@ -0,0 +1,36 @@
local generated = normalrule {
name = "generated",
ins = {
"./new_table",
"h/em_table", -- relative to root, which is a bit evil
},
outleaves = {
"em_flag.c",
"em_pseu.c",
"em_mnem.c",
"em_spec.h",
"em_pseu.h",
"em_mnem.h",
},
deps = {
"h+emheaders"
},
commands = {
"%{ins[1]} %{ins[2]} %{dir} %{dir}"
}
}
clibrary {
name = "lib",
srcs = concat(
"./em_ptyp.c",
matching(filenamesof(generated), "%.c$")
),
hdrs = {
"+generated" -- so we export the H files
},
deps = {
"+generated", -- so we can see the H files
"h+emheaders"
}
}

View File

@@ -0,0 +1,34 @@
D := util/data
define util-data-impl
$(eval g := \
$(OBJDIR)/$D/em_flag.c \
$(OBJDIR)/$D/em_pseu.c \
$(OBJDIR)/$D/em_mnem.c \
$(INCDIR)/em_spec.h \
$(INCDIR)/em_pseu.h \
$(INCDIR)/em_mnem.h \
)
$(eval CLEANABLES += $g)
$(wordlist 2, $(words $g), $g): $(firstword $g)
$(firstword $g): $D/new_table h/em_table
@echo DATA
@mkdir -p $(dir $g)
$(hide) $D/new_table h/em_table $(INCDIR) $(OBJDIR)/$D
$(call reset)
$(call cfile, $(OBJDIR)/$D/em_flag.c)
$(call cfile, $(OBJDIR)/$D/em_pseu.c)
$(call cfile, $(OBJDIR)/$D/em_mnem.c)
$(call cfile, $D/em_ptyp.c)
$(eval $q: $g)
$(call clibrary, $(LIBDIR)/libem_data.a)
$(eval LIBEM_DATA := $q)
endef
$(eval $(util-data-impl))

View File

@@ -0,0 +1,19 @@
#include <em_spec.h>
#include <em_ptyp.h>
short em_ptyp[] = {
0, /* PAR_NO */
cst_ptyp, /* PAR_C */
cst_ptyp, /* PAR_D */
cst_ptyp, /* PAR_N */
cst_ptyp, /* PAR_F */
cst_ptyp, /* PAR_L */
arg_ptyp, /* PAR_G */
cst_ptyp|ptyp(sp_cend), /* PAR_W */
cst_ptyp, /* PAR_S */
cst_ptyp, /* PAR_Z */
cst_ptyp, /* PAR_O */
ptyp(sp_pnam), /* PAR_P */
ptyp(sp_cst2), /* PAR_B */
ptyp(sp_cst2) /* PAR_R */
};

76
modules/src/em_data/new_table Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/sh
set -e
em_table=$1
h=${2-.}
d=${3-.}
set `grep fpseu $em_table`
p=$2
set `grep fmnem $em_table`
m=$2
ed - $em_table <<'A' > X
1,/^$/g/ /s// /gp
A
ed - $em_table <<'A' | awk '{$2=$2+'$p'; print}' > Y
1,/^$/d
1,/^$/g/ /s// /gp
A
ed - $em_table <<'A' | awk '{print $0,'$m'+i++}' > Z
1,/^$/d
1,/^$/d
1,/^$/g/ /s// /gp
A
i=`wc -l <Y`
echo 'lpseu' `expr $i + $p - 1` >>X
i=`wc -l <Z`
echo 'lmnem' `expr $i + $m - 1` >>X
ed - X <<'A' > $h/em_spec.h
g/^/s//#define sp_/p
A
ed - Y <<'A' > $h/em_pseu.h
g/ \(.*\) .*/s// \1/
g/\(.*\) \(.*\)/s//#define ps_\1 \2/p
A
ed - Z <<'A' > $h/em_mnem.h
g/ .* /s// /
g/\(.*\) \(.*\)/s//#define op_\1 \2/p
A
(
echo 'char em_pseu[][4] = {'
ed - Y <<'A'
g/\(...\).*/s// "\1",/p
A
echo '};'
) > $d/em_pseu.c
(
echo 'char em_mnem[][4] = {'
ed - Z <<'A'
g/\(...\).*/s// "\1",/p
A
echo '};'
) > $d/em_mnem.c
(
echo '#include <em_flag.h>
char em_flag[] = {'
ed - Z <<'A' | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
g/^... /s///
g/ .*/s///
g/\(.\)\(.\)/s//PAR_\1 | FLO_\2/
g/-/s//NO/g
g/.*/s// &,/p
A
echo '};'
) > $d/em_flag.c
rm X Y Z

View File

@@ -0,0 +1,49 @@
# $Id$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/util/data
OBJ = em_mnem.$(SUF) em_pseu.$(SUF) em_flag.$(SUF) em_ptyp.$(SUF)
DATA_PATH = em_data.$(LIBSUF)
INCLUDES = -I$(TARGET_HOME)/h
CFLAGS = $(COPTIONS) $(INCLUDES)
$(DATA_PATH): $(OBJ)
$(AR) rv $(DATA_PATH) $(OBJ)
$(RANLIB) $(DATA_PATH)
install: $(DATA_PATH)
cp $(DATA_PATH) $(TARGET_HOME)/lib.bin/$(DATA_PATH)
$(RANLIB) $(TARGET_HOME)/lib.bin/$(DATA_PATH)
cmp: $(DATA_PATH)
-cmp $(DATA_PATH) $(TARGET_HOME)/lib.bin/$(DATA_PATH)
clean:
rm -f $(OBJ) $(DATA_PATH) *.old
opr:
make pr ^ opr
pr:
@pr $(SRC_DIR)/proto.make $(SRC_DIR)/em_mnem.c $(SRC_DIR)/em_pseu.c $(SRC_DIR)/em_flag.c $(SRC_DIR)/em_ptyp.c
em_flag.$(SUF): $(SRC_DIR)/em_flag.c $(TARGET_HOME)/h/em_flag.h
$(CC) -c $(CFLAGS) $(SRC_DIR)/em_flag.c
em_mnem.$(SUF): $(SRC_DIR)/em_mnem.c
$(CC) -c $(CFLAGS) $(SRC_DIR)/em_mnem.c
em_pseu.$(SUF): $(SRC_DIR)/em_pseu.c
$(CC) -c $(CFLAGS) $(SRC_DIR)/em_pseu.c
em_ptyp.$(SUF): $(SRC_DIR)/em_ptyp.c $(TARGET_HOME)/h/em_spec.h $(TARGET_HOME)/h/em_ptyp.h
$(CC) -c $(CFLAGS) $(SRC_DIR)/em_ptyp.c
lintlib:
$(MK_LINT_LIB) em_data $(TARGET_HOME)/lib.bin $(INCLUDES) \
$(SRC_DIR)/em_flag.c $(SRC_DIR)/em_mnem.c \
$(SRC_DIR)/em_pseu.c $(SRC_DIR)/em_ptyp.c

View File

@@ -5,7 +5,7 @@ clibrary {
"h+emheaders",
"modules+headers",
"modules/src/em_code+em_code_ek_h",
"util/data+em_data",
"modules/src/em_data+lib",
}
}

View File

@@ -52,8 +52,8 @@ local function variant(name, cflags)
"modules+headers",
"modules/src/alloc+lib",
"modules/src/em_code+em_code_ek_h",
"modules/src/em_data+lib",
"modules/src/system+lib",
"util/data+em_data",
}
}
end