From f0cce9b5e4b772ae1a245d70f6bdb871059f8847 Mon Sep 17 00:00:00 2001 From: Rolf Bork <rbork@caltech.edu> Date: Fri, 7 May 2021 15:58:33 -0500 Subject: [PATCH] Moved Epics Makefile generation from feCodeGen.pl to its own pm file: lib/createEpicsMakefile.pm. --- src/epics/util/feCodeGen.pl | 104 +-------------------- src/epics/util/lib/createEpicsMakefile.pm | 106 ++++++++++++++++++++++ 2 files changed, 108 insertions(+), 102 deletions(-) create mode 100644 src/epics/util/lib/createEpicsMakefile.pm diff --git a/src/epics/util/feCodeGen.pl b/src/epics/util/feCodeGen.pl index 13f3d50f6..1da8e7023 100755 --- a/src/epics/util/feCodeGen.pl +++ b/src/epics/util/feCodeGen.pl @@ -1851,13 +1851,12 @@ close OUT2; #// - Write C code MAKEFILE require "lib/createKernelMakefile.pm"; ("CDS::KernelMakefile::createCmakefile") -> ($mFile); -#createCmakefile(); #// - Write User Space C code MAKEFILE require "lib/createUserMakefile.pm"; ("CDS::USP_makefile::createUSPmakefile") -> (); - #// - Write EPICS code MAKEFILE -createEpicsMakefile(); +require "lib/createEpicsMakefile.pm"; +("CDS::EpicsMakefile::createEpicsMfile") -> ($meFile); mkpath $configFilesDir, 0, 0755; @@ -2374,105 +2373,6 @@ for ($ii = 0; $ii < 2000; $ii++) { $partInUsed[$ii] = 0; } } -#// \b sub \b createEpicsMakefile \n -#// Create the EPICS Makefile \n\n -sub createEpicsMakefile { - open(OUTME,">./".$meFile) || die "cannot open EPICS Makefile file for writing"; - print OUTME "\n"; - print OUTME "# Define Epics system name. It should be unique.\n"; - print OUTME "TARGET = $skeleton"; - print OUTME "epics\n"; - print OUTME "\n"; - print OUTME "SRC = build/\$(TARGET)/"; - print OUTME "$skeleton"; - print OUTME "\.st\n"; - print OUTME "\n"; - if ($edcu) { - print OUTME "SRC += $rcg_src_dir/src/epics/seq/edcu.c\n"; - }elsif ($globalsdf) { - print OUTME "SRC += $rcg_src_dir/src/epics/seq/sdf_monitor.c\n"; - } else { - print OUTME "SRC += $rcg_src_dir/src/epics/seq/main.c\n"; - } - print OUTME "SRC += $rcg_src_dir/src/drv/rfm.c\n"; - print OUTME "SRC += $rcg_src_dir/src/drv/param.c\n"; - print OUTME "SRC += $rcg_src_dir/src/drv/crc.c\n"; - print OUTME "SRC += $rcg_src_dir/src/drv/fmReadCoeff.c\n"; - #print OUTME "SRC += src/epics/seq/get_local_time.st\n"; - if ($userspacegps) - { - print OUTME "SRC += $rcg_src_dir/src/drv/gpsclock.c\n"; - } - for($ii=0;$ii<$useWd;$ii++) - { - print OUTME "SRC += src/epics/seq/hepiWatchdog"; - print OUTME "\U$useWdName[$ii]"; - print OUTME "\L\.st\n"; - } - print OUTME "\n"; - #print OUTME "DB += src/epics/db/local_time.db\n"; - print OUTME "DB += build/\$(TARGET)/"; - print OUTME "$skeleton"; - print OUTME "1\.db\n"; - print OUTME "\n"; - print OUTME "IFO = $ifo\n"; - print OUTME "SITE = $location\n"; - print OUTME "\n"; - # The CA SDF build does not need a SEQUENCER added - if ($casdf==0) { - print OUTME "SEQ += \'"; - print OUTME "$skeleton"; - print OUTME ",(\"ifo=$ifo, site=$location, sys=\U$systemName\, \Lsysnum=$dcuId\, \Lsysfile=\U$skeleton \")\'\n"; - } - #print OUTME "SEQ += \'get_local_time,(\"ifo=$ifo, sys=\U$systemName\")\'\n"; - for($ii=0;$ii<$useWd;$ii++) - { - print OUTME "SEQ += \'"; - print OUTME "hepiWatchdog"; - print OUTME "\U$useWdName[$ii]"; - print OUTME ",(\"ifo=$ifo, sys=\U$systemName\,\Lsubsys=\U$useWdName[$ii]\")\'\n"; - } - print OUTME "\n"; - print OUTME "EXTRA_CFLAGS += -D"; - print OUTME "\U$skeleton"; - print OUTME "_CODE\n"; - print OUTME "EXTRA_CFLAGS += -DFE_HEADER=\\\"\L$skeleton.h\\\"\n"; - if ($edcu) { - print OUTME "EXTRA_CFLAGS += -DEDCU=1\n"; - print OUTME "EXTRA_CFLAGS += -DNO_DAQ_IN_SKELETON=1\n"; - } - if ($globalsdf) { - print OUTME "EXTRA_CFLAGS += -DEDCU=1\n"; - print OUTME "EXTRA_CFLAGS += -DNO_DAQ_IN_SKELETON=1\n"; - } - if ($casdf) { - print OUTME "EXTRA_CFLAGS += -DCA_SDF=1\n"; - print OUTME "EXTRA_CFLAGS += -DUSE_SYSTEM_TIME=1\n"; - } - print OUTME "\n"; - #print OUTME "LIBFLAGS += -lezca\n"; - if($systemName eq "sei" || $useFIRs) - { - print OUTME "EXTRA_CFLAGS += -DFIR_FILTERS\n"; - } - if ($userspacegps) - { - print OUTME "EXTRA_CFLAGS += -DUSE_GPSCLOCK\n"; - } - print OUTME "include $rcg_src_dir/config/Makefile.linux\n"; - print OUTME "\n"; - print OUTME "build/\$(TARGET)/"; - print OUTME "$skeleton"; - print OUTME "1\.db: build/\$(TARGET)/"; - print OUTME "$skeleton"; - print OUTME "\.db\n"; - print OUTME "\tsed 's/%SYS%/"; - print OUTME "\U$systemName"; - print OUTME "/g;s/%SUBSYS%//g' \$< > \$\@\n"; - print OUTME "\n"; - print OUTME "\n"; - close OUTME; -} #// \b sub \b printVariables \n #// Add top level variable declarations to generated C Code for selected CDS parts. \n\n diff --git a/src/epics/util/lib/createEpicsMakefile.pm b/src/epics/util/lib/createEpicsMakefile.pm new file mode 100644 index 000000000..3ffa14b4a --- /dev/null +++ b/src/epics/util/lib/createEpicsMakefile.pm @@ -0,0 +1,106 @@ +package CDS::EpicsMakefile; +use Exporter; +@ISA = ('Exporter'); + + +#// \b sub \b createEpicsMakefile \n +#// Create the EPICS Makefile \n\n +sub createEpicsMfile { +my ($fileName) = @_; + + open(OUTME,">./".$fileName) || die "cannot open EPICS Makefile file for writing"; + print OUTME "\n"; + print OUTME "# Define Epics system name. It should be unique.\n"; + print OUTME "TARGET = $::skeleton"; + print OUTME "epics\n"; + print OUTME "\n"; + print OUTME "SRC = build/\$(TARGET)/"; + print OUTME "$::skeleton"; + print OUTME "\.st\n"; + print OUTME "\n"; + if ($edcu) { + print OUTME "SRC += $::rcg_src_dir/src/epics/seq/edcu.c\n"; + }elsif ($globalsdf) { + print OUTME "SRC += $::rcg_src_dir/src/epics/seq/sdf_monitor.c\n"; + } else { + print OUTME "SRC += $::rcg_src_dir/src/epics/seq/main.c\n"; + } + print OUTME "SRC += $::rcg_src_dir/src/drv/rfm.c\n"; + print OUTME "SRC += $::rcg_src_dir/src/drv/param.c\n"; + print OUTME "SRC += $::rcg_src_dir/src/drv/crc.c\n"; + print OUTME "SRC += $::rcg_src_dir/src/drv/fmReadCoeff.c\n"; + #print OUTME "SRC += src/epics/seq/get_local_time.st\n"; + if ($::userspacegps) + { + print OUTME "SRC += $::rcg_src_dir/src/drv/gpsclock.c\n"; + } + for($ii=0;$ii<$::useWd;$ii++) + { + print OUTME "SRC += src/epics/seq/hepiWatchdog"; + print OUTME "\U$::useWdName[$ii]"; + print OUTME "\L\.st\n"; + } + print OUTME "\n"; + #print OUTME "DB += src/epics/db/local_time.db\n"; + print OUTME "DB += build/\$(TARGET)/"; + print OUTME "$::skeleton"; + print OUTME "1\.db\n"; + print OUTME "\n"; + print OUTME "IFO = $::ifo\n"; + print OUTME "SITE = $::location\n"; + print OUTME "\n"; + # The CA SDF build does not need a SEQUENCER added + if ($::casdf==0) { + print OUTME "SEQ += \'"; + print OUTME "$::skeleton"; + print OUTME ",(\"ifo=$::ifo, site=$::location, sys=\U$::systemName\, \Lsysnum=$::dcuId\, \Lsysfile=\U$::skeleton \")\'\n"; + } + #print OUTME "SEQ += \'get_local_time,(\"ifo=$ifo, sys=\U$systemName\")\'\n"; + for($ii=0;$ii<$::useWd;$ii++) + { + print OUTME "SEQ += \'"; + print OUTME "hepiWatchdog"; + print OUTME "\U$::useWdName[$ii]"; + print OUTME ",(\"ifo=$::ifo, sys=\U$::systemName\,\Lsubsys=\U$::useWdName[$ii]\")\'\n"; + } + print OUTME "\n"; + print OUTME "EXTRA_CFLAGS += -D"; + print OUTME "\U$::skeleton"; + print OUTME "_CODE\n"; + print OUTME "EXTRA_CFLAGS += -DFE_HEADER=\\\"\L$::skeleton.h\\\"\n"; + if ($edcu) { + print OUTME "EXTRA_CFLAGS += -DEDCU=1\n"; + print OUTME "EXTRA_CFLAGS += -DNO_DAQ_IN_SKELETON=1\n"; + } + if ($::globalsdf) { + print OUTME "EXTRA_CFLAGS += -DEDCU=1\n"; + print OUTME "EXTRA_CFLAGS += -DNO_DAQ_IN_SKELETON=1\n"; + } + if ($::casdf) { + print OUTME "EXTRA_CFLAGS += -DCA_SDF=1\n"; + print OUTME "EXTRA_CFLAGS += -DUSE_SYSTEM_TIME=1\n"; + } + print OUTME "\n"; + #print OUTME "LIBFLAGS += -lezca\n"; + if($::systemName eq "sei" || $::useFIRs) + { + print OUTME "EXTRA_CFLAGS += -DFIR_FILTERS\n"; + } + if ($::userspacegps) + { + print OUTME "EXTRA_CFLAGS += -DUSE_GPSCLOCK\n"; + } + print OUTME "include $::rcg_src_dir/config/Makefile.linux\n"; + print OUTME "\n"; + print OUTME "build/\$(TARGET)/"; + print OUTME "$::skeleton"; + print OUTME "1\.db: build/\$(TARGET)/"; + print OUTME "$::skeleton"; + print OUTME "\.db\n"; + print OUTME "\tsed 's/%SYS%/"; + print OUTME "\U$::systemName"; + print OUTME "/g;s/%SUBSYS%//g' \$< > \$\@\n"; + print OUTME "\n"; + print OUTME "\n"; + close OUTME; +} -- GitLab