Skip to content
Snippets Groups Projects
Commit 96c0839e authored by ben.franksen's avatar ben.franksen
Browse files

snc: do not hard-code main, instead include seqMain.c

Of course we also provide a default seqMain.c and install it.
parent d7a2f970
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,8 @@ include $(TOP)/configure/CONFIG
#----------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
INC += seqMain.c
# Internal debug control
#USR_CPPFLAGS = -DDEBUG
......
......@@ -87,33 +87,8 @@ void generate_code(Program *p)
/* Generate main program */
static void gen_main(char *prog_name)
{
printf("\n/* Main program */\n");
printf("#include \"epicsThread.h\"\n");
printf("#include \"iocsh.h\"\n");
printf("\n");
printf("int main(int argc,char *argv[]) {\n");
printf(" char * macro_def;\n");
printf(" int callIocsh = TRUE;\n");
printf("\n");
printf(" if(argc>1 && strcmp(argv[1],\"-s\")==0) {\n");
printf(" callIocsh = TRUE;\n");
printf(" --argc; ++argv;\n");
printf(" }\n");
printf(" if(argc>1 && strcmp(argv[1],\"-S\")==0) {\n");
printf(" --argc; ++argv;\n");
printf(" callIocsh = FALSE;\n");
printf(" }\n");
printf(" macro_def = (argc>1)?argv[1]:NULL;\n");
printf(" seqRegisterSequencerProgram(&%s);\n", prog_name);
printf(" seq(&%s, macro_def, 0);\n", prog_name);
printf(" if(callIocsh) {\n");
printf(" seqRegisterSequencerCommands();\n");
printf(" iocsh(0);\n");
printf(" } else {\n");
printf(" epicsThreadExitMain();\n");
printf(" }\n");
printf(" return(0);\n");
printf("}\n");
printf("\n#define PROG_NAME %s\n", prog_name);
printf("#include \"seqMain.c\"\n");
}
/* Generate preamble (includes, defines, etc.) */
......
/* Default main program */
#include "epicsThread.h"
#include "iocsh.h"
int main(int argc,char *argv[]) {
char * macro_def;
int callIocsh = TRUE;
if(argc>1 && strcmp(argv[1],"-s")==0) {
callIocsh = TRUE;
--argc; ++argv;
}
if(argc>1 && strcmp(argv[1],"-S")==0) {
--argc; ++argv;
callIocsh = FALSE;
}
macro_def = (argc>1)?argv[1]:NULL;
seqRegisterSequencerProgram(&PROG_NAME);
seq(&PROG_NAME, macro_def, 0);
if(callIocsh) {
seqRegisterSequencerCommands();
iocsh(0);
} else {
epicsThreadExitMain();
}
return(0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment