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