Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
createEpicsMakefile.pm 3.29 KiB
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/epics/seq/sdf_file_loaded.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 = $::lsite\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=$::lsite, 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";