mirror of
https://github.com/nasa/trick.git
synced 2024-12-30 01:48:52 +00:00
77 lines
2.6 KiB
Perl
Executable File
77 lines
2.6 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use File::Basename ;
|
|
use Cwd 'abs_path';
|
|
use Getopt::Long ;
|
|
use strict;
|
|
|
|
# read the trick_ver.txt file and print the trick version
|
|
sub print_version() {
|
|
my @all_lines ;
|
|
my $file_contents ;
|
|
my ($current_version) ;
|
|
my $trick_ver_txt = "$ENV{TRICK_HOME}/share/trick/trick_ver.txt" ;
|
|
open FILE, "$trick_ver_txt" or die "$0: Couldn't find $trick_ver_txt\n" ;
|
|
@all_lines = <FILE> ;
|
|
close FILE ;
|
|
$file_contents = join "" , @all_lines ;
|
|
($current_version) = $file_contents =~ /current_version\s*=\s*"([^"]+)"/ ;
|
|
print "$current_version\n" ;
|
|
}
|
|
|
|
# print the prefix which is also TRICK_HOME
|
|
sub print_prefix() {
|
|
print "$ENV{TRICK_HOME}\n" ;
|
|
}
|
|
|
|
# Run a special rule in Makefile.sim that prints the value of the environment variable we request
|
|
sub print_makefile_var($) {
|
|
open(README, "make -f $ENV{TRICK_HOME}/share/trick/makefiles/Makefile.trickconfig print-@_ | ") or
|
|
die "Couldn't fork $!\n" ;
|
|
while (<README>) {
|
|
/=(.*)/ && print "$1\n" ;
|
|
}
|
|
close(README) ;
|
|
}
|
|
|
|
sub print_usage() {
|
|
print "\
|
|
Usage: trick-config <OPTION>
|
|
|
|
Options:
|
|
--version Print Trick version
|
|
--prefix Print the installation prefix (TRICK_HOME)
|
|
--includedir Directory containing Trick headers (TRICK_INCLUDES)
|
|
--libdir Directory containing Trick libraries (TRICK_LIB_DIR)
|
|
--cflags C compiler flags set by Trick (TRICK_SYSTEM_CFLAGS)
|
|
--cxxflags C++ compiler flags set by Trick (TRICK_SYSTEM_CXXFLAGS)
|
|
--ldflags Print Linker flags (TRICK_EXEC_LINK_LIBS)
|
|
--libs Libraries needed to link against Trick components (TRICK_LIBS)
|
|
" ;
|
|
}
|
|
|
|
sub print_usage_error() {
|
|
print_usage() ;
|
|
exit 1 ;
|
|
}
|
|
|
|
# Print usage if no arguments given
|
|
print_usage_error() if ( scalar @ARGV == 0 ) ;
|
|
|
|
# Set TRICK_HOME environment variable if it does not exist. TRICK_HOME is parent directory
|
|
$ENV{"TRICK_HOME"} = dirname(dirname(abs_path($0))) if (!exists $ENV{"TRICK_HOME"}) ;
|
|
|
|
# Process arguments
|
|
Getopt::Long::Configure ("bundling");
|
|
GetOptions ( "version" => sub {print_version();},
|
|
"prefix" => sub {print_prefix();},
|
|
"includedir" => sub {print_makefile_var("TRICK_INCLUDES");},
|
|
"libdir" => sub {print_makefile_var("TRICK_LIB_DIR");},
|
|
"cflags" => sub {print_makefile_var("TRICK_SYSTEM_CFLAGS");},
|
|
"cxxflags" => sub {print_makefile_var("TRICK_SYSTEM_CXXFLAGS");},
|
|
"ldflags" => sub {print_makefile_var("TRICK_EXEC_LINK_LIBS");},
|
|
"libs" => sub {print_makefile_var("TRICK_LIBS");},
|
|
"help|h" => sub {print_usage()},
|
|
) or print_usage_error() ;
|
|
|