Move util/data into modules/src/em_data, for consistency with the other
modules.
This commit is contained in:
@@ -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
|
||||
|
||||
3
modules/src/em_data/.distr
Normal file
3
modules/src/em_data/.distr
Normal file
@@ -0,0 +1,3 @@
|
||||
build.mk
|
||||
em_ptyp.c
|
||||
new_table
|
||||
36
modules/src/em_data/build.lua
Normal file
36
modules/src/em_data/build.lua
Normal 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"
|
||||
}
|
||||
}
|
||||
34
modules/src/em_data/build.mk
Normal file
34
modules/src/em_data/build.mk
Normal 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))
|
||||
19
modules/src/em_data/em_ptyp.c
Normal file
19
modules/src/em_data/em_ptyp.c
Normal 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
76
modules/src/em_data/new_table
Executable 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
|
||||
49
modules/src/em_data/proto.make
Normal file
49
modules/src/em_data/proto.make
Normal 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
|
||||
@@ -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",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user