Remove CMake changes and generic sed scripts so they are move to a separate branch.

This commit is contained in:
carl 2019-02-21 00:43:04 +08:00
parent a80248f204
commit f7ba3eec50
23 changed files with 0 additions and 1350 deletions

View file

@ -1,81 +0,0 @@
cmake_minimum_required (VERSION 3.0)
enable_testing()
# Watch out on the order of the building, some modules and libraries
# must be built before others.
# if (MSVC)
# add_compile_options(/W3 /WX)
# else()
# add_compile_options(-W -Wall -Werror)
# endif()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/h)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/h)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/alloc)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/string)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/print)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/flt_arith)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/data)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/system)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/em_data)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/em_code)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/em_mes)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/object)
# Incomplete, as it should regenerate the em_tables.
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/modules/src/read_em)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/make)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/arch)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/amisc)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/cmisc)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/LLgen)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/misc)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/topgen)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/cpp)
# Compilers and runtime libraries
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lang/basic/src)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lang/pc/comp)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lang/cem/cemcom.ansi)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lang/cem/cpp.ansi)
# Should probably not be present, assuming it is installed on target.
# add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/byacc)
# Compilers / assemblers / linkers
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/6500/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/6800/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/6805/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/6809/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/arm/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/i386/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/i80/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/i86/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/m68020/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/m68k2/as)
# Currently unported.
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/mips/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/ns/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/pdp/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/powerpc/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/s2650/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/vax4/as)
# Does not build on current CLang 8.0
# add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/vc4/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/z80/as)
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/z8000/as)
# Old code generators
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/util/cgg)
# CPU Specific coge generators
#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/mach/6500/cg)

View file

@ -1,26 +0,0 @@
cmake_minimum_required (VERSION 3.0)
project(emheaders)
# Create an include only library to be used
# for easier dependency management.
# Created when generating the CMake file.
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/local.h "#define VERSION 3")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/local.h "#define ACKM ")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/local.h "#define BIGMACHINE 1")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/local.h "#define SYS_5")
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)

View file

@ -1,318 +0,0 @@
cmake_minimum_required (VERSION 3.0)
project(em_cemcom.ansi)
##################################
# Location of built scripts.
##################################
set(PROJECT_SCRIPTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../util/scripts)
set(SRC_C
align.h
arith.c
arith.h
atw.h
blocks.c
blocks.h
ch3.c
ch3.h
ch3bin.c
ch3bin.h
ch3mon.c
ch3mon.h
class.h
code.c
conversion.c
conversion.h
cstoper.c
cstoper.h
dataflow.c
dataflow.h
declarator.c
declarator.h
decspecs.c
decspecs.h
domacro.c
domacro.h
dumpidf.c
error.c
error.h
eval.c
eval.h
expr.c
field.c
file_info.h
fltcstoper.c
fltcstoper.h
idf.c
input.c
input.h
interface.h
idf.c
input.c
input.h
l_class.h
l_comment.c
l_comment.h
l_em.h
l_ev_ord.c
l_lint.c
l_lint.h
l_misc.c
l_outdef.c
l_states.c
label.c
label.h
level.h
LLlex.c
LLlex.h
LLmessage.c
main.c
mes.h
options.c
options.h
pragma.c
pragma.h
proto.c
sizes.h
skip.c
skip.h
specials.h
stab.c
stab.h
stack.c
stb.c
struct.c
switch.c
tokenname.c
tokenname.h
type.c
util.c
)
set(INCLUDE_DIRS
.
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../include
${CMAKE_CURRENT_SOURCE_DIR}/../../../modules/src/idf
${CMAKE_CURRENT_SOURCE_DIR}/../../../modules/src/input
)
############################################
# LLgen inputs
############################################
set(GEN_G
${CMAKE_CURRENT_BINARY_DIR}/tokenfile.g
)
set(SRC_G
${CMAKE_CURRENT_SOURCE_DIR}/program.g
${CMAKE_CURRENT_SOURCE_DIR}/declar.g
${CMAKE_CURRENT_SOURCE_DIR}/expression.g
${CMAKE_CURRENT_SOURCE_DIR}/statement.g
${CMAKE_CURRENT_SOURCE_DIR}/ival.g
)
############################################
# LLgen outputs
############################################
set(GEN_SRC
${CMAKE_CURRENT_BINARY_DIR}/program.c
${CMAKE_CURRENT_BINARY_DIR}/declar.c
${CMAKE_CURRENT_BINARY_DIR}/expression.c
${CMAKE_CURRENT_BINARY_DIR}/statement.c
${CMAKE_CURRENT_BINARY_DIR}/ival.c
${CMAKE_CURRENT_BINARY_DIR}/tokenfile.c
${CMAKE_CURRENT_BINARY_DIR}/Lpars.c
${CMAKE_CURRENT_BINARY_DIR}/Lpars.h
${CMAKE_CURRENT_BINARY_DIR}/Lncor.c
)
set(GFILES
${GEN_G}
${SRC_G}
)
############################################
# Configuration parameters generated files
############################################
set(GEN_H_CONFIG
${CMAKE_CURRENT_BINARY_DIR}/parameters.h
)
set(GEN_OTHERS
${CMAKE_CURRENT_BINARY_DIR}/code.h
${CMAKE_CURRENT_BINARY_DIR}/declar.h
${CMAKE_CURRENT_BINARY_DIR}/def.h
${CMAKE_CURRENT_BINARY_DIR}/expr.h
${CMAKE_CURRENT_BINARY_DIR}/field.h
${CMAKE_CURRENT_BINARY_DIR}/estack.h
${CMAKE_CURRENT_BINARY_DIR}/util.h
${CMAKE_CURRENT_BINARY_DIR}/proto.h
${CMAKE_CURRENT_BINARY_DIR}/replace.h
${CMAKE_CURRENT_BINARY_DIR}/idf.h
${CMAKE_CURRENT_BINARY_DIR}/macro.h
${CMAKE_CURRENT_BINARY_DIR}/stack.h
${CMAKE_CURRENT_BINARY_DIR}/stmt.h
${CMAKE_CURRENT_BINARY_DIR}/struct.h
${CMAKE_CURRENT_BINARY_DIR}/switch.h
${CMAKE_CURRENT_BINARY_DIR}/type.h
${CMAKE_CURRENT_BINARY_DIR}/l_brace.h
${CMAKE_CURRENT_BINARY_DIR}/l_state.h
${CMAKE_CURRENT_BINARY_DIR}/l_outdef.h
${CMAKE_CURRENT_BINARY_DIR}/next.c
)
set(CFILES
${SRC_C}
${GEN_SRC}
${GEN_H_CONFIG}
${GEN_OTHERS}
symbol2str.c
char.c
)
set(LLGENOPTIONS
-n
)
###############################################
# Generate the compile time configuration file
###############################################
add_custom_command(
OUTPUT ${GEN_H_CONFIG} BigPars mkparams.sed
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SCRIPTS_SOURCE_DIR}/mkparams.sed
${CMAKE_CURRENT_BINARY_DIR}/mkparams.sed
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/BigPars
${CMAKE_CURRENT_BINARY_DIR}/BigPars
COMMAND sed -f ${PROJECT_SCRIPTS_SOURCE_DIR}/mkparams.sed ${CMAKE_CURRENT_BINARY_DIR}/BigPars>parameters.h
DEPENDS BigPars)
###############################################
# Generate other source files
###############################################
add_custom_command(
OUTPUT ${GEN_OTHERS} mkalloc1.sed mkalloc2.sed mknext.sed
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SCRIPTS_SOURCE_DIR}/mkalloc1.sed
${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SCRIPTS_SOURCE_DIR}/mkalloc2.sed
${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SCRIPTS_SOURCE_DIR}/mknext.sed
${CMAKE_CURRENT_BINARY_DIR}/mknext.sed
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/code.str>code.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/declar.str>declar.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/def.str>def.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/expr.str>expr.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/field.str>field.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/estack.str>estack.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/util.str>util.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/proto.str>proto.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/idf.str>idf.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/macro.str>macro.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/stack.str>stack.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/stmt.str>stmt.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/struct.str>struct.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/switch.str>switch.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/type.str>type.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_brace.str>l_brace.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_state.str>l_state.h
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc1.sed -f ${CMAKE_CURRENT_BINARY_DIR}/mkalloc2.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_outdef.str>l_outdef.h
# Create next file from above files
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/next.str
${CMAKE_CURRENT_BINARY_DIR}/next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/code.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/declar.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/def.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/expr.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/field.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/estack.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/util.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/proto.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/idf.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/macro.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/stack.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/stmt.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/struct.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/switch.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/type.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_brace.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_state.str>>next.c
COMMAND sed -n -f ${CMAKE_CURRENT_BINARY_DIR}/mknext.sed ${CMAKE_CURRENT_SOURCE_DIR}/l_outdef.str>>next.c
)
add_custom_command(
OUTPUT char.c
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/../../../util/cmisc/tabgen -f${CMAKE_CURRENT_SOURCE_DIR}/char.tab >char.c
)
###############################################
# Generate the LLGen source files
# NOTE: Order of input file is important
###############################################
add_custom_command(
OUTPUT tokenfile.g mktkfile.sed
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SCRIPTS_SOURCE_DIR}/mktkfile.sed
${CMAKE_CURRENT_BINARY_DIR}/mktkfile.sed
COMMAND sed -f ${CMAKE_CURRENT_BINARY_DIR}/mktkfile.sed ${CMAKE_CURRENT_SOURCE_DIR}/tokenname.c>tokenfile.g
)
add_custom_command(
OUTPUT ${GEN_SRC}
COMMAND ${CMAKE_COMMAND} -E env LLGEN_LIB_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../../../util/LLgen/lib ${CMAKE_CURRENT_BINARY_DIR}/../../../util/LLgen/LLgen ${LLGENOPTIONS} ${GEN_G} ${SRC_G}
DEPENDS LLgen tokenfile.g)
add_custom_command(
OUTPUT symbol2str.c
COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/tokcaseh.in >symbol2str.c
COMMAND sed -f ${CMAKE_CURRENT_SOURCE_DIR}/tokcase.sed ${CMAKE_CURRENT_SOURCE_DIR}/tokenname.c >>symbol2str.c
COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/tokcasee.in >>symbol2str.c
)
add_executable(${PROJECT_NAME} ${CFILES})
target_compile_definitions(${PROJECT_NAME} PUBLIC NORCSID=1)
target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} emheaders emh flt alloc print string system em_data eme em_mes)
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cemcom.ansi.1 DESTINATION man OPTIONAL)

View file

@ -1,18 +0,0 @@
cmake_minimum_required (VERSION 3.0)
project(emh)
# Create an include only library to be used
# for easier dependency management.
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)

View file

@ -1,29 +0,0 @@
cmake_minimum_required (VERSION 3.0)
project (alloc)
set(SRC
botch.c
clear.c
Malloc.c
No_Mem.c
Realloc.c
Salloc.c
Srealloc.c
std_alloc.c
st_alloc.c
alloc.h
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "alloc.h")
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/alloc.3 DESTINATION man OPTIONAL)

View file

@ -1,39 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project (data)
set(SRCS
array.c
array.h
astring.c
astring.h
diagnostics.c
diagnostics.h
imap.c
imap.h
pmap.c
pmap.h
smap.c
smap.h
stringlist.c
stringlist.h
)
set(INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}
)
add_library(${PROJECT_NAME} ${SRCS})
target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIRS})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "array.h;astring.h;diagnostics.h;imap.h;pmap.h;smap.h;stringlist.h")
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)

View file

@ -1,99 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project(em_code)
set(SRC
bhcst.c
bhdlb.c
bhdnam.c
bhfcon.c
bhicon.c
bhilb.c
bhpnam.c
bhucon.c
crcst.c
crdlb.c
crdnam.c
crxcon.c
crilb.c
crpnam.c
crscon.c
cst.c
dfdlb.c
dfdnam.c
dfilb.c
dlb.c
dnam.c
end.c
endarg.c
exc.c
fcon.c
getid.c
icon.c
ilb.c
insert.c
internerr.c
msend.c
op.c
opcst.c
opdlb.c
opdnam.c
opilb.c
opnarg.c
oppnam.c
pnam.c
pro.c
pronarg.c
msstart.c
psdlb.c
psdnam.c
pspnam.c
scon.c
ucon.c
C_out.c
failed.c
em.c
em_codeEK.h
em_code.h
em_codeCE.h
em_codeO.h
em_private.h
)
set(INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
add_library(eme ${SRC})
target_include_directories(eme PUBLIC ${INCLUDE_DIRS})
target_compile_definitions(eme PRIVATE READABLE_EM)
target_link_libraries(eme em_data alloc print system)
add_library(emk ${SRC})
target_include_directories(emk PUBLIC ${INCLUDE_DIRS})
target_link_libraries(emk em_data alloc print system)
set_target_properties(eme PROPERTIES PUBLIC_HEADER "em_codeEK.h")
set_target_properties(emk PROPERTIES PUBLIC_HEADER "em_codeEK.h")
add_custom_command(
OUTPUT em_codeEK.h file1.tmp
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/makeem.sed
${CMAKE_CURRENT_BINARY_DIR}/makeem.sed
COMMAND sed -f makeem.sed ${CMAKE_CURRENT_SOURCE_DIR}/../../../h/em_table>file1.tmp
COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/em.nogen file1.tmp>em_codeEK.h
COMMENT "Regenerate em_codeEK.h from em_table"
)
install(TARGETS eme emk
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/em_code.3X DESTINATION man OPTIONAL)

View file

@ -1,43 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project(em_data)
set(SRC
em_spec.h
em_pseu.h
em_pseu.c
em_mnem.h
em_mnem.c
em_flag.c
em_ptyp.c
)
set(INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../../h
${CMAKE_CURRENT_SOURCE_DIR}/../../../h
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} emheaders emh)
add_executable(makeem makeem.c)
target_link_libraries(makeem data)
add_custom_command(
OUTPUT em_spec.h em_pseu.h em_pseu.c em_mnem.h em_mnem.c em_flag.c
COMMAND makeem ${CMAKE_CURRENT_SOURCE_DIR}/../../../h/em_table
COMMENT "Generating em_data files"
DEPENDS makeem
)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

View file

@ -1,309 +0,0 @@
/** A utility to convert the em definition table to generated code.
* This is more portable than the shell scripts that currently
* exist.
*
* This tool should only be called if the em_table is changeed, it creates
* the following files:
* em_spec.h
* em_pseu.h
* em_pseu.c
* em_mnem.h
* em_mnem.c
* em_flag.c
*
*
*/
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "array.h"
size_t trimwhitespace(char *out, size_t len, const char *str)
{
if(len == 0)
return 0;
const char *end;
size_t out_size;
// Trim leading space
while(isspace((unsigned char)*str)) str++;
if(*str == 0) // All spaces?
{
*out = 0;
return 1;
}
// Trim trailing space
end = str + strlen(str) - 1;
while(end > str && isspace((unsigned char)*end)) end--;
end++;
// Set output size to minimum of trimmed string length and buffer size minus 1
out_size = (end - str) < len-1 ? (end - str) : len-1;
// Copy trimmed string and add null terminator
memcpy(out, str, out_size);
out[out_size] = 0;
return out_size;
}
#define BUFFER_SIZE 4096
/** This section contains indexes to the different limits as well as important
* constant values */
#define SECTION_INDEXES 0
/** This section contains the "opcodes" for the different mnemonics */
#define SECTION_MNEMONICS SECTION_INDEXES+1
/** This section contains the "opcodes" for the em machine */
#define SECTION_OPCODES SECTION_MNEMONICS+1
static char inbuffer[BUFFER_SIZE];
static char buffer[BUFFER_SIZE];
static struct array section_index;
static struct array section_mnemonics;
static struct array section_opcodes;
/** Separates the string into its separate tokens,
* and fills up the column data structure accordingly.
*
* maxcolumns indicates the maximum number of columns
* allowed in the text file.
*
*/
struct array *newrow(char* buffer, int maxcolumns)
{
char* pch = NULL;
int i = 0;
int count = 0;
struct array *columns = NULL;
columns = calloc(1,sizeof(struct array));
if (columns == NULL)
{
fprintf(stderr,"Cannot allocate memory.\n");
exit(EXIT_FAILURE);
}
pch = strtok (buffer,"\t ");
if (pch == NULL)
{
fprintf(stderr,"Expecting %d columns for indexes.\n",maxcolumns);
exit(EXIT_FAILURE);
}
array_append(columns,strdup(pch));
count++;
for (i = count; i < maxcolumns; i++)
{
pch = strtok (NULL, "\t ");
if (pch == NULL)
{
fprintf(stderr,"Expecting %d columns for indexes.\n",maxcolumns);
exit(EXIT_FAILURE);
}
count++;
array_append(columns,strdup(pch));
}
return columns;
}
void disposerow(struct array *row)
{
int i = 0;
char* str;
for (i = 0; i < row->count; i++)
{
str = (char*)row->item[i];
free(str);
row->item[i] = NULL;
}
free(row);
}
/** Copies a null terminated string,
* but allocates the memory.
*
*/
char* strdup(const char* s)
{
int length = strlen(s)+1;
char* ptr = malloc(length);
memcpy(ptr, s, length);
return ptr;
}
int main(int argc, char *argv[])
{
int i = 0;
struct array *columns;
int value;
char *str;
char c1;
char c2;
FILE* hfile;
FILE* cfile;
char str1[3] = {0,0,0};
char str2[3] = {0,0,0};
/** First opcode value, -1 is invalid. */
int fmnem = -1;
/** First pseudocode value, -1 is invalid. */
int fpseu = -1;
if (argc != 2)
{
fprintf(stdout,"Requires em_table file and pathname\n");
return EXIT_FAILURE;
}
FILE *fd = fopen(argv[1],"r");
int section = SECTION_INDEXES;
fprintf(stdout,"Opening : %s\n",argv[1]);
if (fd == NULL)
{
fprintf(stderr,"Cannot find file.\n");
return EXIT_FAILURE;
}
while (fgets(inbuffer,BUFFER_SIZE,fd)!=NULL)
{
/* First section, opcode limits. */
trimwhitespace(buffer,BUFFER_SIZE,inbuffer);
/** Next section */
if (strlen(buffer)==0)
{
section++;
continue;
}
if (section == SECTION_INDEXES)
{
/* Split the row text into columns. */
columns = newrow(buffer, 2);
array_append(&section_index, columns);
}
else
if (section == SECTION_MNEMONICS)
{
columns = newrow(buffer, 3);
array_append(&section_mnemonics, columns);
} else
if (section == SECTION_OPCODES)
{
columns = newrow(buffer, 3);
array_append(&section_opcodes, columns);
}
}
fclose(fd);
/* process the indexes */
hfile = fopen("em_spec.h","w");
for (i = 0; i < section_index.count; i++)
{
columns = (struct array*)section_index.item[i];
str = columns->item[0];
if (strcmp("fpseu",columns->item[0])==0)
{
fpseu = atoi(columns->item[1]);
}
if (strcmp("fmnem",columns->item[0])==0)
{
fmnem = atoi(columns->item[1]);
}
fprintf(hfile,"#define sp_%s\t %s\n",columns->item[0],columns->item[1]);
}
fprintf(hfile,"#define sp_lpseu\t% d\n",fpseu+section_mnemonics.count - 1);
fprintf(hfile,"#define sp_lmnem\t %d\n",fmnem+section_opcodes.count - 1);
fclose(hfile);
/** Check validity of first indexes. */
if ((fpseu == -1) || (fmnem == -1))
{
fprintf(stderr,"Error fpseu or fmnem first index values are not defined.\n");
exit(EXIT_FAILURE);
}
/* process the pseudocodes */
hfile = fopen("em_pseu.h","w");
cfile = fopen("em_pseu.c","w");
fprintf(cfile,"char em_pseu[][4] = {\n");
for (i = 0; i < section_mnemonics.count; i++)
{
columns = (struct array*)section_mnemonics.item[i];
str = columns->item[1];
value = atoi(str);
fprintf(hfile,"#define ps_%s\t%d\n",columns->item[0],value+fpseu);
fprintf(cfile," \"%s\",\n",columns->item[0]);
}
fprintf(cfile,"};\n");
fclose(hfile);
fclose(cfile);
/* process the opcodes */
hfile = fopen("em_mnem.h","w");
cfile = fopen("em_mnem.c","w");
fprintf(cfile,"char em_mnem[][4] = {\n");
for (i = 0; i < section_opcodes.count; i++)
{
columns = (struct array*)section_opcodes.item[i];
fprintf(hfile,"#define op_%s\t%d\n",columns->item[0],i+fmnem);
fprintf(cfile," \"%s\",\n",columns->item[0]);
}
fprintf(cfile,"};\n");
fclose(hfile);
fclose(cfile);
/* Create the flag files from opcodes */
cfile = fopen("em_flag.c","w");
fprintf(cfile,"#include \"em_flag.h\"\n");
fprintf(cfile,"char em_flag[] = {\n");
for (i = 0; i < section_opcodes.count; i++)
{
columns = (struct array*)section_opcodes.item[i];
/* 2nd column indicate the parameter format, always on 2 columns. */
if (strlen(columns->item[1])!=2)
{
fprintf(stderr,"Error opcode type characterstic should be on 2 characters.\n");
exit(EXIT_FAILURE);
}
str = (char*)columns->item[1];
c1 = toupper(str[0]);
c2 = toupper(str[1]);
str1[0] = c1;
str1[1] = '\0';
str2[0] = c2;
str2[1] = '\0';
if (c1 == '-')
strcpy(str1,"NO");
if (c2 == '-')
strcpy(str2,"NO");
fprintf(cfile, "PAR_%s | FLO_%s,\n",str1,str2);
}
fprintf(cfile,"};\n");
fclose(cfile);
return EXIT_SUCCESS;
}

View file

@ -1,37 +0,0 @@
cmake_minimum_required (VERSION 3.0)
project(em_mes)
set(SRC_C
C_ms_com.c
C_ms_ego.c
C_ms_emx.c
C_ms_err.c
C_ms_flt.c
C_ms_gto.c
C_ms_opt.c
C_ms_par.c
C_ms_reg.c
C_ms_src.c
C_ms_stb.c
C_ms_std.c
)
set(INCLUDE_DIRS
.
)
add_library(${PROJECT_NAME} ${SRC_C})
target_compile_definitions(${PROJECT_NAME} PUBLIC NORCSID=1)
target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} emheaders emh emk em_data)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/em_mes.3 DESTINATION man OPTIONAL)

View file

@ -1,48 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project (flt)
enable_testing()
set(SRCS
b64_add.c
b64_sft.c
flt_add.c
flt_ar2flt.c
flt_arith.h
flt_chk.c
flt_cmp.c
flt_div.c
flt_flt2ar.c
flt_misc.h
flt_modf.c
flt_mul.c
flt_nrm.c
flt_str2fl.c
flt_umin.c
split.c
)
add_library(${PROJECT_NAME} ${SRCS})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "flt_arith.h")
target_link_libraries(${PROJECT_NAME} emh)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/flt_arith.3 DESTINATION man OPTIONAL)
#############################################
# Test targets
#############################################
add_executable(testflt test.c)
target_link_libraries(testflt ${PROJECT_NAME})
add_test(NAME ops_testflt COMMAND testsfpu)
# This is a bug workaround with CMake
#add_custom_target(tests COMMAND ${CMAKE_CTEST_COMMAND}
# DEPENDS testflt)

View file

@ -1,27 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project (print)
set(SRC
doprnt.c
format.c
fprint.c
print.c
sprint.c
print.h
param.h
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "print.h")
target_link_libraries(${PROJECT_NAME} string system)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/print.3 DESTINATION man OPTIONAL)

View file

@ -1,31 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project (string)
set(SRC
bts2str.c
btscat.c
btscmp.c
btscpy.c
btszero.c
long2str.c
str2bts.c
str2long.c
strindex.c
strrindex.c
strzero.c
ack_string.h
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "ack_string.h")
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/string.3 DESTINATION man OPTIONAL)

View file

@ -1,36 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project(system)
set(SRC
access.c
break.c
chmode.c
close.c
create.c
filesize.c
lock.c
modtime.c
open.c
read.c
remove.c
rename.c
seek.c
stop.c
system.c
write.c
tmpdir.c
system.h
)
add_library(${PROJECT_NAME} ${SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "system.h")
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/system.3 DESTINATION man OPTIONAL)

View file

@ -1,99 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project(LLgen)
enable_testing()
set(SRC
src/main.c
src/gencode.c
src/compute.c
src/LLgen.c
src/tokens.c
src/check.c
src/reach.c
src/global.c
src/name.c
src/sets.c
src/Lpars.c
src/alloc.c
src/machdep.c
src/cclass.c
src/savegram.c
src/cclass.h
src/extern.h
src/io.h
src/Lpars.h
src/sets.h
src/types.h
)
set(INCLUDE_DIRS src)
include_directories(${INCLUDE_DIRS})
add_executable(${PROJECT_NAME} ${SRC})
target_compile_definitions(${PROJECT_NAME} PUBLIC NDEBUG=1 NON_CORRECTING=1 NORCSID=1)
# Correcting version.
add_executable(llgen_c ${SRC})
target_compile_definitions(llgen_c PUBLIC NORCSID=1)
file(COPY lib DESTINATION .)
#############################################
# Regenerate the actual grammar files
#############################################
add_custom_target(regenerate
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/src/tokens.g
${CMAKE_CURRENT_BINARY_DIR}/tokens.g
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/src/Llgen.g
${CMAKE_CURRENT_BINARY_DIR}/Llgen.g
COMMAND ${PROJECT_NAME} -vvv tokens.g LLgen.g
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/Llgen.c ${CMAKE_CURRENT_SOURCE_DIR}/src/LLgen.c
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/tokens.c ${CMAKE_CURRENT_SOURCE_DIR}/src/tokens.c
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/Lpars.c ${CMAKE_CURRENT_SOURCE_DIR}/src/Lpars.c
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/Lpars.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Lpars.h
COMMENT "Regenerate grammar files and copy them to source"
)
add_dependencies(regenerate ${PROJECT_NAME})
#############################################
# Test targets
#############################################
# Try to rebuild the own LLgen grammar.
add_test(NAME llgentest COMMAND ${PROJECT_NAME} -vvv
${CMAKE_CURRENT_SOURCE_DIR}/src/tokens.g
${CMAKE_CURRENT_SOURCE_DIR}/src/LLgen.g)
############################################
# Install targets
#############################################
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/LLgen.1 DESTINATION man OPTIONAL)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/lib/incl
${CMAKE_CURRENT_SOURCE_DIR}/lib/nc_incl
${CMAKE_CURRENT_SOURCE_DIR}/lib/nc_rec
${CMAKE_CURRENT_SOURCE_DIR}/lib/rec
DESTINATION lib)

View file

@ -1,17 +0,0 @@
cmake_minimum_required (VERSION 2.9)
project (cmisc)
add_executable(tabgen tabgen.c)
target_compile_definitions(tabgen PUBLIC NORCSID=1)
add_executable(ed ed.c)
target_compile_definitions(ed PUBLIC NORCSID=1)
install(TARGETS tabgen ed DESTINATION bin)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/tabgen.1
${CMAKE_CURRENT_SOURCE_DIR}/ed.1
DESTINATION man OPTIONAL)

View file

@ -1,23 +0,0 @@
cmake_minimum_required (VERSION 2.6)
project (ack-make)
set(SRC
check.c
input.c
macro.c
make.c
main.c
reader.c
rules.c
h.h
)
# The following should be added if utime.h and unistd.h are
# available.
# add_definitions(-Dunix)
add_executable(${PROJECT_NAME} ${SRC})
install(TARGETS ${PROJECT_NAME} DESTINATION bin)

View file

@ -1,13 +0,0 @@
s/^.*[ ]ALLOCDEF[ ].*"\(.*\)"[ ]*\([0-9][0-9]*\).*$/\
\/* allocation definitions of struct \1 *\/\
extern char *st_alloc();\
extern struct \1 *h_\1;\
#ifdef DEBUG\
extern int cnt_\1;\
extern char *std_alloc();\
#define new_\1() ((struct \1 *) std_alloc((char **)\&h_\1, sizeof(struct \1), \2, \&cnt_\1))\
#else\
#define new_\1() ((struct \1 *) st_alloc((char **)\&h_\1, sizeof(struct \1), \2))\
#endif\
#define free_\1(p) st_free(p, \&h_\1, sizeof(struct \1))\
/

View file

@ -1,12 +0,0 @@
s/^.*[ ]STATICALLOCDEF[ ].*"\(.*\)"[ ]*\([0-9][0-9]*\).*$/\
\/* allocation definitions of struct \1 *\/\
extern char *st_alloc();\
struct \1 *h_\1;\
#ifdef DEBUG\
int cnt_\1;\
#define new_\1() ((struct \1 *) std_alloc((char **)\&h_\1, sizeof(struct \1), \2, \&cnt_\1))\
#else\
#define new_\1() ((struct \1 *) st_alloc((char **)\&h_\1, sizeof(struct \1), \2))\
#endif\
#define free_\1(p) st_free(p, \&h_\1, sizeof(struct \1))\
/

View file

@ -1,4 +0,0 @@
s/^.*[ ]ALLOCDEF[ ].*"\(.*\)".*$/struct \1 *h_\1 = 0;\
#ifdef DEBUG\
int cnt_\1 = 0;\
#endif/p

View file

@ -1,9 +0,0 @@
##################################################################
# This script is used to generate a parameter header file from
# the Parameters files.
#
# The Parameters file and this script should have UNIX line endings
# (\n) otherwise strange issues could occur.
#
#################################################################
/!File: /d

View file

@ -1,4 +0,0 @@
/{[A-Z]/!d
s/.*{//
s/,.*//
s/.*/%token &;/

View file

@ -1,28 +0,0 @@
cmake_minimum_required (VERSION 3.2)
project(em_topgen)
set(SRC
main.c
topgen.c
Lpars.c
LLlex.c
symtab.c
symtab.h
pattern.c
hash.c
token.h
tunable.h
)
set(INCLUDE_DIRS
.
${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT topgen.c Lpars.c Lpars.h
COMMAND ${CMAKE_COMMAND} -E env LLGEN_LIB_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../LLgen/lib ${CMAKE_CURRENT_BINARY_DIR}/../LLgen/LLgen "${CMAKE_CURRENT_SOURCE_DIR}/topgen.g"
# COMMAND ${CMAKE_CURRENT_BINARY_DIR}/../LLgen/llgen "${CMAKE_CURRENT_SOURCE_DIR}/topgen.g"
MAIN_DEPENDENCY topgen.g
DEPENDS LLgen)
add_executable(topgen ${SRC})
target_include_directories(topgen PRIVATE ${INCLUDE_DIRS})
target_link_libraries(topgen)
install(TARGETS topgen DESTINATION bin)