add standalone stuff for 3.13 build
This commit is contained in:
8
Makefile
8
Makefile
@ -3,20 +3,22 @@ TOP = ..
|
||||
# Look if we have EPICS R3.13 or R3.14
|
||||
ifneq ($(wildcard $(TOP)/configure),)
|
||||
# EPICS R3.14
|
||||
DIRS = configure
|
||||
include $(TOP)/configure/CONFIG
|
||||
else ifneq ($(wildcard $(TOP)/config),)
|
||||
# EPICS R3.13
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
CONFIG = $(TOP)/config
|
||||
DIRS = config
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
else
|
||||
TOP = .
|
||||
DIRS = configure
|
||||
include $(TOP)/configure/CONFIG
|
||||
endif
|
||||
|
||||
DIRS = configure
|
||||
DIRS += src
|
||||
src_DEPEND_DIRS = configure
|
||||
DIRS += streamApp
|
||||
streamApp_DEPEND_DIRS = src
|
||||
|
||||
include $(CONFIG)/RULES_TOP
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
3
config/CONFIG
Normal file
3
config/CONFIG
Normal file
@ -0,0 +1,3 @@
|
||||
#CONFIG
|
||||
# Add any changes to make rules here
|
||||
#CROSS_COMPILER_TARGET_ARCHS = mv167
|
20
config/CONFIG_APP
Normal file
20
config/CONFIG_APP
Normal file
@ -0,0 +1,20 @@
|
||||
#CONFIG_APP
|
||||
include $(TOP)/config/RELEASE
|
||||
-include $(TOP)/config/RELEASE.$(HOST_ARCH)
|
||||
include $(EPICS_BASE)/config/CONFIG
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
ifdef INSTALL_LOCATION_APP
|
||||
INSTALL_LOCATION = $(INSTALL_LOCATION_APP)
|
||||
endif
|
||||
|
||||
ifdef T_A
|
||||
-include $(TOP)/config/O.$(T_A)/CONFIG_APP_INCLUDE
|
||||
endif
|
||||
|
||||
# Where to install databases
|
||||
INSTALL_DB = $(INSTALL_LOCATION)/db
|
||||
# dbst based database optimization (default: NO)
|
||||
DB_OPT = NO
|
||||
# May be overridden if not all databases should be installed
|
||||
INSTALLDB = $(DB)
|
||||
include $(TOP)/config/CONFIG
|
9
config/Makefile
Normal file
9
config/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
#
|
||||
# Makefile,v 1.1.2.1 1999/07/15 19:55:30 jba Exp
|
||||
#
|
||||
|
||||
TOP=..
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
|
||||
include $(TOP)/config/RULES_ARCHS
|
||||
|
21
config/Makefile.Host
Normal file
21
config/Makefile.Host
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Makefile.Host,v 1.1.2.3 2001/09/14 19:39:14 anj Exp
|
||||
#
|
||||
|
||||
TOP=../..
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
|
||||
TARGETS = checkRelease CONFIG_APP_INCLUDE
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
|
||||
inc:: $(TARGETS)
|
||||
|
||||
CONFIG_APP_INCLUDE: $(wildcard $(TOP)/config/RELEASE*) $(TOP)/config/CONFIG_APP
|
||||
$(PERL) $(TOP)/config/convertRelease.pl $@
|
||||
|
||||
checkRelease:
|
||||
$(PERL) $(TOP)/config/convertRelease.pl $@
|
||||
|
||||
.PHONY :: checkRelease
|
||||
|
15
config/Makefile.Vx
Normal file
15
config/Makefile.Vx
Normal file
@ -0,0 +1,15 @@
|
||||
#
|
||||
# Makefile.Vx,v 1.1.2.3 2001/09/14 19:39:15 anj Exp
|
||||
#
|
||||
|
||||
TOP=../..
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
|
||||
TARGETS = CONFIG_APP_INCLUDE
|
||||
|
||||
include $(TOP)/config/RULES.Vx
|
||||
|
||||
inc:: $(TARGETS)
|
||||
|
||||
CONFIG_APP_INCLUDE: $(wildcard $(TOP)/config/RELEASE*) $(TOP)/config/CONFIG_APP
|
||||
$(PERL) $(TOP)/config/convertRelease.pl -h $(HOST_ARCH) $@
|
1
config/RELEASE
Normal file
1
config/RELEASE
Normal file
@ -0,0 +1 @@
|
||||
include $(TOP)/configure/RELEASE
|
203
config/RULES.Db
Normal file
203
config/RULES.Db
Normal file
@ -0,0 +1,203 @@
|
||||
# RULES.Db,v 1.9.6.6 2003/03/25 23:13:22 jba Exp
|
||||
#
|
||||
# Rules for making things related to databases
|
||||
#
|
||||
MAKEBPT = $(EPICS_BASE_HOST_BIN)/makeBpt$(EXE)
|
||||
DBLOADTEMPLATE = $(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)
|
||||
DBEXPAND = $(EPICS_BASE_HOST_BIN)/dbExpand$(EXE)
|
||||
DBST = dbst
|
||||
MAKEDBDEPENDS = $(PERL) $(TOP)/config/makeDbDepends.pl
|
||||
REPLACEVAR = $(PERL) $(TOP)/config/replaceVAR.pl
|
||||
ifndef WIN32
|
||||
TOUCH = touch
|
||||
else
|
||||
TOUCH = $(PERL) $(TOP)/config/touch.pl
|
||||
endif
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
# if we are not building base add base dbd dirs
|
||||
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_DBDFLAGS += -I $(EPICS_BASE)/dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# ----------------------------------------------------
|
||||
# create names (lists) for installed things
|
||||
# ----------------------------------------------------
|
||||
|
||||
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBDS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DATA = $(INSTALLDB:%=$(INSTALL_DB)/%)
|
||||
INSTALL_TEMPLATES = $(filter %.template,$(INSTALL_DATA))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Main targets
|
||||
|
||||
all:: install
|
||||
|
||||
inc:: $(INSTALL_DBDS) $(INSTALL_BPTS) $(INSTALL_TEMPLATES)
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
install:: inc buildInstall
|
||||
|
||||
buildInstall:: build $(INSTALL_DATA)
|
||||
|
||||
depends::
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) $(DB) $(DBDNAME) *.template *.substitutions *.db.raw \
|
||||
*.db-stamp *.edf esiread.cnf
|
||||
|
||||
##################################################### "Foreign" templates
|
||||
|
||||
TEMPLATE_LINKS = $(filter-out $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
|
||||
TEMPLATE_FILES = $(filter $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
|
||||
DB_STAMP = $(patsubst %.db, %.db-stamp, $(DB))
|
||||
DB_REALTARGET = $(patsubst %.db-stamp, %.db, $@)
|
||||
|
||||
ifneq '$(TEMPLATE_LINKS)' ''
|
||||
build:: $(notdir $(TEMPLATE_LINKS))
|
||||
endif
|
||||
build:: $(INSTALL_DBDNAME) $(TEMPLATE_FILES) $(DB_STAMP)
|
||||
|
||||
$(notdir $(TEMPLATE_LINKS)): %.template:
|
||||
ifndef WIN32
|
||||
@$(RM) $(notdir $(TEMPLATE_LINKS))
|
||||
ln -s $(TEMPLATE_LINKS) .
|
||||
# Workaround for dbLoadTemplate bug: terminate here if link target doesn't exist
|
||||
@cat $(TEMPLATE_LINKS) > /dev/null
|
||||
else
|
||||
@$(RM) $(notdir $(TEMPLATE_LINKS))
|
||||
$(CP) $(TEMPLATE_LINKS) .
|
||||
endif
|
||||
|
||||
##################################################### Inflated or plain databases
|
||||
|
||||
$(INSTALL_DB)/%.db: %.db-stamp
|
||||
@echo "Installing database $@"
|
||||
@$(INSTALL) -d -m 644 $(patsubst %.db-stamp, %.db, $<) $(@D)
|
||||
|
||||
# Must have DBDNAME defined to use dbst optimization
|
||||
ifndef DBDNAME
|
||||
DB_OPT = NO
|
||||
endif
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
.PRECIOUS: %.db.raw
|
||||
%.db-stamp: %.db.raw $(INSTALL_DBD)/$(DBDNAME)
|
||||
@echo "Optimizing database $@"
|
||||
$(DBST) $(INSTALL_DBD)/$(DBDNAME) $< -d > $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
%.db-stamp: %.t.db.raw $(INSTALL_DBD)/$(DBDNAME)
|
||||
@echo "Optimizing database $@"
|
||||
$(DBST) $(INSTALL_DBD)/$(DBDNAME) $< -d > $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
else
|
||||
# NO optimization => move it and keep a stamp
|
||||
%.db-stamp: %.db.raw
|
||||
@$(MV) $< $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
@$(TOUCH) $<
|
||||
%.db-stamp: %.t.db.raw
|
||||
@$(MV) $< $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
@$(TOUCH) $<
|
||||
endif
|
||||
|
||||
%.t.db.raw: %.substitutions
|
||||
@echo "Inflating database from $<"
|
||||
@$(RM) $@
|
||||
@$(DBLOADTEMPLATE) $< > $@
|
||||
|
||||
##################################################### CapFast filter
|
||||
|
||||
%.edf:: ../%.sch $(DEPSCHS)
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
||||
|
||||
##################################################### Substitution files
|
||||
|
||||
$(INSTALL_DB)/%.substitutions: %.substitutions
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $(@F) $(@D)
|
||||
|
||||
%.substitutions:: ../%.substitutions
|
||||
@$(CP) $< $@
|
||||
|
||||
ifdef CREATESUBSTITUTIONS
|
||||
%.substitutions:: $(word $(words $(CREATESUBSTITUTIONS)),$(CREATESUBSTITUTIONS))
|
||||
@$(CREATESUBSTITUTIONS) $*
|
||||
endif
|
||||
|
||||
# Better make it PRECIOUS (to get around make bug)
|
||||
.PRECIOUS: %.substitutions
|
||||
|
||||
##################################################### Template databases
|
||||
|
||||
# Installed template files (dbLoadTemplate() on IOC side)
|
||||
$(INSTALL_DB)/%.template: %.template
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $(@F) $(@D)
|
||||
|
||||
%.template:: ../%.template
|
||||
@$(CP) $< $@
|
||||
|
||||
%.template: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
##################################################### Flat databases
|
||||
|
||||
%.db.raw:: ../%.db
|
||||
$(CP) $< $@
|
||||
|
||||
%.db.raw: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
##################################################### DBD stuff
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%:: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(MAKEBPT) $<
|
||||
|
||||
bpt%.dbd:: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(MAKEBPT) $<
|
||||
|
||||
# Patch for old applications
|
||||
ifdef USER_DBDFLAGS
|
||||
DBDFLAGS = $(USER_DBDFLAGS)
|
||||
endif
|
||||
|
||||
ifdef DBDEXPAND
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo "Expanding dbd"
|
||||
@$(RM) $@
|
||||
$(DBEXPAND) $(DBDFLAGS) $< > dbExpand.tmp
|
||||
$(MV) dbExpand.tmp $@
|
||||
endif
|
||||
|
||||
##################################################### Dependencies
|
||||
|
||||
DEPENDS: $(filter $(patsubst %.db, %.substitutions, $(DB)), $(wildcard *.substitutions))
|
||||
@$(MAKEDBDEPENDS) $^
|
||||
|
||||
-include DEPENDS
|
3
config/RULES.Host
Normal file
3
config/RULES.Host
Normal file
@ -0,0 +1,3 @@
|
||||
#RULES.Host
|
||||
|
||||
include $(EPICS_BASE)/config/RULES.Host
|
7
config/RULES.Vx
Normal file
7
config/RULES.Vx
Normal file
@ -0,0 +1,7 @@
|
||||
#RULES.Vx
|
||||
include $(EPICS_BASE)/config/RULES.Vx
|
||||
inc:: $(INSTALL_INCREC)
|
||||
|
||||
# Library should be rebuilt because LIBOBJS may have changed.
|
||||
$(LIBNAME): ../Makefile.Vx
|
||||
|
9
config/RULES.ioc
Normal file
9
config/RULES.ioc
Normal file
@ -0,0 +1,9 @@
|
||||
#RULES.ioc
|
||||
include $(EPICS_BASE)/config/RULES_DIRS
|
||||
buildInstall:: cdCommands
|
||||
|
||||
cdCommands: Makefile $(wildcard $(TOP)/config/RELEASE*)
|
||||
@$(PERL) $(TOP)/config/convertRelease.pl -a $(ARCH) -h $(HOST_ARCH) $@
|
||||
|
||||
clean::
|
||||
@$(RM) cdCommands
|
4
config/RULES.iocBoot
Normal file
4
config/RULES.iocBoot
Normal file
@ -0,0 +1,4 @@
|
||||
#RULES.iocBoot
|
||||
DIRS += $(wildcard ioc*)
|
||||
DIRS += $(wildcard as*)
|
||||
include $(EPICS_BASE)/config/RULES_DIRS
|
14
config/RULES.munch
Normal file
14
config/RULES.munch
Normal file
@ -0,0 +1,14 @@
|
||||
MUNCH = $(PERL) $(INSTALL_LOCATION)/bin/$(HOST_ARCH)/munch.pl
|
||||
|
||||
# The original 3.13.10 munching rule does not really work well
|
||||
|
||||
build:: $(LIBNAME).munch
|
||||
|
||||
buildInstall:: $(INSTALL_BIN)/$(LIBNAME).munch
|
||||
|
||||
%.munch: %
|
||||
$(RM) $*_ctct.o $*_ctdt.c
|
||||
$(NM) $< | $(MUNCH) > $*_ctdt.c
|
||||
$(GCC) -traditional $(CFLAGS) -fdollars-in-identifiers -c $(SOURCE_FLAG) $*_ctdt.c
|
||||
$(LINK.c) $@ $< $*_ctdt.o
|
||||
|
2
config/RULES_ARCHS
Normal file
2
config/RULES_ARCHS
Normal file
@ -0,0 +1,2 @@
|
||||
#RULES_ARCHS
|
||||
include $(EPICS_BASE)/config/RULES_ARCHS
|
2
config/RULES_DIRS
Normal file
2
config/RULES_DIRS
Normal file
@ -0,0 +1,2 @@
|
||||
#RULES_DIRS
|
||||
include $(EPICS_BASE)/config/RULES_DIRS
|
5
config/RULES_TOP
Normal file
5
config/RULES_TOP
Normal file
@ -0,0 +1,5 @@
|
||||
#RULES_TOP
|
||||
include $(EPICS_BASE)/config/RULES_TOP
|
||||
|
||||
uninstall::
|
||||
@$(RMDIR) $(INSTALL_DB)
|
186
config/convertRelease.pl
Normal file
186
config/convertRelease.pl
Normal file
@ -0,0 +1,186 @@
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
if $running_under_some_shell; # convertRelease.pl
|
||||
#
|
||||
# convertRelease.pl,v 1.1.2.1 2001/09/14 19:39:15 anj Exp
|
||||
#
|
||||
# Parse config/RELEASE file(s) and generate a derived output file.
|
||||
#
|
||||
# This tool replaces makeConfigAppInclude.pl and makeIocCdCommands.pl
|
||||
# and adds consistency checks for RELEASE files.
|
||||
#
|
||||
|
||||
use Cwd;
|
||||
use Getopt::Std;
|
||||
|
||||
$cwd = cwd();
|
||||
$cwd =~ s/\/tmp_mnt//; # hack for sun4
|
||||
$cwd =~ s/\\/\//g; # hack for win32
|
||||
|
||||
getopt "aht";
|
||||
|
||||
if ($opt_a) {
|
||||
$arch = $opt_a;
|
||||
} else { # Look for O.<arch> in current path
|
||||
$_ = $cwd;
|
||||
($arch) = /.*\/O.([\w-]+)$/;
|
||||
}
|
||||
|
||||
$hostarch = $arch;
|
||||
$hostarch = $opt_h if ($opt_h);
|
||||
|
||||
if ($opt_t) {
|
||||
$top = $opt_t;
|
||||
} else { # Find $top from current path
|
||||
$top = $cwd;
|
||||
$top =~ s/\/iocBoot.*//;
|
||||
$top =~ s/\/config\/O\..*//;
|
||||
}
|
||||
|
||||
unless (@ARGV == 1) {
|
||||
print "Usage: convertRelease.pl [-a arch] [-h hostarch] [-t top] outfile\n";
|
||||
print " where outfile is be one of:\n";
|
||||
print "\tcheckRelease - checks consistency with support apps\n";
|
||||
print "\tcdCommands - generate cd path strings for IOC use\n";
|
||||
print "\tCONFIG_APP_INCLUDE - additional build variables\n";
|
||||
exit 2;
|
||||
}
|
||||
$outfile = $ARGV[0];
|
||||
|
||||
# TOP refers to this application
|
||||
%macros = (TOP => $top);
|
||||
@apps = (TOP); # Provides the order of apps in RELEASE file
|
||||
|
||||
# Read the RELEASE file(s)
|
||||
$relfile = "$top/config/RELEASE";
|
||||
die "Can't find config/RELEASE file" unless (-r $relfile);
|
||||
&readRelease($relfile, \%macros, \@apps);
|
||||
|
||||
if ($hostarch) {
|
||||
$relfile .= ".$hostarch";
|
||||
&readRelease($relfile, \%macros, \@apps) if (-r $relfile);
|
||||
}
|
||||
|
||||
# This is a perl switch statement:
|
||||
for ($outfile) {
|
||||
/CONFIG_APP_INCLUDE/ and do { &configAppInclude; last; };
|
||||
/cdCommands/ and do { &cdCommands; last; };
|
||||
/checkRelease/ and do { &checkRelease; last; };
|
||||
die "Output file type \'$outfile\' not supported";
|
||||
}
|
||||
|
||||
sub readRelease {
|
||||
my ($file, $Rmacros, $Rapps) = @_;
|
||||
# $Rmacros is a reference to a hash, $Rapps a ref to an array
|
||||
my ($pre, $macro, $post, $path);
|
||||
local *IN;
|
||||
open(IN, $file) or die "Can't open $file: $!\n";
|
||||
while (<IN>) {
|
||||
chomp;
|
||||
s/\s*#.*$//; # Remove trailing comments
|
||||
next if /^\s*$/; # Skip blank lines
|
||||
|
||||
# Expand all macros in the line:
|
||||
while (($pre,$macro,$post) = /(.*)\$\((\w+)\)(.*)/, $macro ne "") {
|
||||
$_ = $pre . $Rmacros->{$macro} . $post;
|
||||
}
|
||||
|
||||
# Handle "<macro> = <path>"
|
||||
($macro, $path) = /^\s*(\w+)\s*=\s*(.*)/;
|
||||
if ($macro ne "") {
|
||||
$Rmacros->{$macro} = $path;
|
||||
push @$Rapps, $macro;
|
||||
next;
|
||||
}
|
||||
# Handle "include <path>" syntax
|
||||
($path) = /^\s*include\s+(.*)/;
|
||||
&readRelease($path, $Rmacros, $Rapps) if (-r $path);
|
||||
}
|
||||
close IN;
|
||||
}
|
||||
|
||||
sub configAppInclude {
|
||||
@includes = grep !/^(TOP|TEMPLATE_TOP)$/, @apps;
|
||||
|
||||
unlink($outfile);
|
||||
open(OUT,">$outfile") or die "$! creating $outfile";
|
||||
print OUT "# Do not modify this file, changes made here will\n";
|
||||
print OUT "# be lost when the application is next rebuilt.\n\n";
|
||||
|
||||
if ($arch) {
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/bin/$arch");
|
||||
print OUT "${app}_BIN = \$($app)/bin/$arch\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/lib/$arch");
|
||||
print OUT "${app}_LIB = \$($app)/lib/$arch\n";
|
||||
}
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/include");
|
||||
print OUT "EPICS_INCLUDES += -I\$($app)/include\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/dbd");
|
||||
print OUT "EPICS_DBDFLAGS += -I \$($app)/dbd\n";
|
||||
}
|
||||
close OUT;
|
||||
}
|
||||
|
||||
sub cdCommands {
|
||||
die "Architecture not set (use -a option)" unless ($arch);
|
||||
@includes = grep !/^TEMPLATE_TOP$/, @apps;
|
||||
|
||||
# if -t <top> was given, substitute it in the startup path
|
||||
$startup = $cwd;
|
||||
$startup =~ s/.*(\/iocBoot\/.*)/$top$1/ if ($opt_t);
|
||||
|
||||
unlink($outfile);
|
||||
open(OUT,">$outfile") or die "$! creating $outfile";
|
||||
print OUT "startup = \"$startup\"\n";
|
||||
print OUT "appbin = \"$top/bin/$arch\"\n"; # compatibility with R3.13.1
|
||||
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
$lcapp = lc($app);
|
||||
print OUT "$lcapp = \"$path\"\n" if (-d $path);
|
||||
print OUT "${lcapp}bin = \"$path/bin/$arch\"\n" if (-d "$path/bin/$arch");
|
||||
}
|
||||
close OUT;
|
||||
}
|
||||
|
||||
sub checkRelease {
|
||||
$status = 0;
|
||||
delete $macros{TOP};
|
||||
delete $macros{TEMPLATE_TOP};
|
||||
|
||||
while (($app, $path) = each %macros) {
|
||||
%check = (TOP => $path);
|
||||
@order = ();
|
||||
$relfile = "$path/config/RELEASE";
|
||||
&readRelease($relfile, \%check, \@order) if (-r $relfile);
|
||||
if ($hostarch) {
|
||||
$relfile .= ".$hostarch";
|
||||
&readRelease($relfile, \%check, \@order) if (-r $relfile);
|
||||
}
|
||||
delete $check{TOP};
|
||||
|
||||
while (($parent, $ppath) = each %check) {
|
||||
if (exists $macros{$parent} && ($macros{$parent} ne $ppath)) {
|
||||
print "\n" unless ($status);
|
||||
print "Definition of $parent conflicts with $app support.\n";
|
||||
print "In this application config/RELEASE defines\n";
|
||||
print "\t$parent = $macros{$parent}\n";
|
||||
print "but $app at $path has\n";
|
||||
print "\t$parent = $ppath\n";
|
||||
$status = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
print "\n" if ($status);
|
||||
exit $status;
|
||||
}
|
23
config/makeDbDepends.pl
Normal file
23
config/makeDbDepends.pl
Normal file
@ -0,0 +1,23 @@
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
if $running_under_some_shell; # makeDbDepends.pl
|
||||
|
||||
# Called from within the object directory.
|
||||
# Searches the .substitutions files (from the command line) for
|
||||
# "file xxx {" entries to create a .DEPENDS file
|
||||
|
||||
open(OUT, ">.DEPENDS") or die "Cannot open .DEPENDS: $!";
|
||||
|
||||
foreach $file (@ARGV) {
|
||||
open(IN, "<$file") or die "Cannot open $file: $!";
|
||||
@substfile = <IN>;
|
||||
close IN or die "Cannot close $file: $!";
|
||||
|
||||
@depends = grep { s/^\s*file\s*(.*)\s*\{.*$/\1/ } @substfile;
|
||||
chomp @depends;
|
||||
|
||||
if (@depends) {
|
||||
$file =~ s/\.substitutions/\.t.db.raw/;
|
||||
print OUT "${file}:: @depends\n";
|
||||
}
|
||||
}
|
||||
close OUT or die "Cannot close $file: $!";
|
12
config/replaceVAR.pl
Normal file
12
config/replaceVAR.pl
Normal file
@ -0,0 +1,12 @@
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
if $running_under_some_shell; # replaceVAR.pl
|
||||
|
||||
# Called from within the object directory
|
||||
# Replaces VAR(xxx) with $(xxx)
|
||||
# and VAR_xxx_ with $(xxx)
|
||||
|
||||
while (<STDIN>) {
|
||||
s/VAR\(/\$\(/g;
|
||||
s/VAR_([^_]*)_/\$\($1\)/g;
|
||||
print;
|
||||
}
|
31
config/touch.pl
Normal file
31
config/touch.pl
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# unix touch in Perl
|
||||
|
||||
use File::Copy;
|
||||
use File::Basename;
|
||||
|
||||
sub Usage
|
||||
{
|
||||
my ($txt) = @_;
|
||||
|
||||
print "Usage:\n";
|
||||
print "\ttouch file [ file2 file3 ...]\n";
|
||||
print "\nError: $txt\n" if $txt;
|
||||
|
||||
exit 2;
|
||||
}
|
||||
|
||||
# need at least one arg: ARGV[0]
|
||||
Usage("need more args") if $#ARGV < 0;
|
||||
|
||||
@targets=@ARGV[0..$#ARGV];
|
||||
|
||||
foreach $file ( @targets )
|
||||
{
|
||||
open(OUT,">$file") or die "$! creating $file";
|
||||
#print OUT "NUL\n";
|
||||
close OUT;
|
||||
}
|
||||
|
||||
# EOF touch.pl
|
@ -5,7 +5,12 @@ include $(TOP)/configure/RELEASE
|
||||
-include $(TOP)/configure/RELEASE.Common.$(T_A)
|
||||
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
ifneq ($(wildcard $(EPICS_BASE)/configure),)
|
||||
CONFIG=$(EPICS_BASE)/configure
|
||||
else
|
||||
CONFIG=$(EPICS_BASE)/config
|
||||
DIRS += config
|
||||
endif
|
||||
include $(CONFIG)/CONFIG
|
||||
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
|
@ -1,5 +1,9 @@
|
||||
#CONFIG
|
||||
ifneq ($(wildcard $(EPICS_BASE)/configure),)
|
||||
include $(EPICS_BASE)/configure/RULES
|
||||
else
|
||||
include $(EPICS_BASE)/config/RULES_ARCHS
|
||||
endif
|
||||
|
||||
# Library should be rebuilt because LIBOBJS may have changed.
|
||||
$(LIBNAME): ../Makefile
|
||||
|
@ -18,7 +18,7 @@
|
||||
# #
|
||||
################################################################
|
||||
|
||||
TOP = ../../..
|
||||
TOP := ../../$(TOP)
|
||||
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
include ../CONFIG_STREAM
|
||||
@ -32,7 +32,7 @@ INC += devStream.h
|
||||
CONFIGS = RULES.munch
|
||||
SCRIPTS = munch.pl
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
include $(EPICS_BASE)/config/RULES.Host
|
||||
|
||||
# create stream.dbd from all RECORDTYPES
|
||||
# In 3.13, calcout has no device support
|
||||
|
@ -18,7 +18,7 @@
|
||||
# #
|
||||
################################################################
|
||||
|
||||
TOP = ../../..
|
||||
TOP := ../../$(TOP)
|
||||
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
include ../CONFIG_STREAM
|
||||
@ -30,11 +30,11 @@ SRCS.cc += $(BUSSES:%=../%Interface.cc)
|
||||
SRCS.cc += $(FORMATS:%=../%Converter.cc)
|
||||
SRCS.c += $(patsubst %,../%,$(filter %.c,$(STREAM_SRCS)))
|
||||
# In 3.13, calcout has no device support
|
||||
SRCS.c += $($(filter-out calcout,$(RECORDTYPES)):%=../dev%Stream.c)
|
||||
SRCS.c += $(patsubst %,../dev%Stream.c,$(filter-out calcout,$(RECORDTYPES)))
|
||||
|
||||
LIBOBJS = $(patsubst ../%,%.o,$(basename $(SRCS.cc) $(SRCS.c)))
|
||||
|
||||
include $(TOP)/config/RULES.Vx
|
||||
include $(EPICS_BASE)/config/RULES.Vx
|
||||
include $(TOP)/config/RULES.munch
|
||||
|
||||
build:: depends
|
||||
|
@ -66,13 +66,7 @@ CPPFLAGS += -DDEBUGFILE=StreamDebug.log
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
ifeq ($(BASE_3_14), YES)
|
||||
clean:: myclean
|
||||
else
|
||||
clean: myclean
|
||||
endif
|
||||
|
||||
myclean:
|
||||
clean::
|
||||
$(RM) core* StreamDebug.log
|
||||
|
||||
endif
|
||||
|
@ -1,8 +1,5 @@
|
||||
TOP = ../../..
|
||||
TOP := ../../$(TOP)
|
||||
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
|
||||
DBDEXPAND = streamAppInclude-3-13.dbd
|
||||
DBDNAME = streamApp.dbd
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
include $(EPICS_BASE)/config/RULES.Host
|
||||
|
@ -1,19 +1,24 @@
|
||||
TOP = ../../..
|
||||
TOP := ../../$(TOP)
|
||||
|
||||
include $(TOP)/config/CONFIG_APP
|
||||
|
||||
LIBNAME = streamApp
|
||||
|
||||
LDLIBS += $(COMPAT_BIN)/compatLib
|
||||
LDLIBS += $(ASYN_BIN)/asynLib
|
||||
LDLIBS += $(INSTALL_BIN)/streamLib
|
||||
LDLIBS += $(TOP)/bin/$(T_A)/streamLib
|
||||
LDLIBS += $(ASYN)/bin/$(T_A)/asynLib
|
||||
LDLIBS += $(COMPAT)/bin/$(T_A)/compatLib
|
||||
|
||||
include ../base-3-13LIBOBJS
|
||||
|
||||
# Write StreamDevice debug output to this file
|
||||
CPPFLAGS += -DDEBUGFILE=StreamDebug.log
|
||||
streamApp_DBD += base-3-13.dbd
|
||||
streamApp_DBD += stream.dbd
|
||||
DBDNAME = streamApp.dbd
|
||||
DBDEXPAND = streamAppInclude-3-13.dbd
|
||||
|
||||
include $(TOP)/config/RULES.Vx
|
||||
# Write StreamDevice debug output to this file
|
||||
#CPPFLAGS += -DDEBUGFILE=StreamDebug.log
|
||||
|
||||
include $(EPICS_BASE)/config/RULES.Vx
|
||||
include $(TOP)/config/RULES.munch
|
||||
|
||||
# Rebuild when LIBOBJS change
|
||||
|
Reference in New Issue
Block a user